← Home
package main

import (
	"bufio"
	"fmt"
	"os"
	"strings"
)

func main() {
	in := bufio.NewReaderSize(os.Stdin, 1<<20)
	out := bufio.NewWriterSize(os.Stdout, 1<<20)
	defer out.Flush()

	var n, k int
	var s string
	fmt.Fscan(in, &n, &k, &s)

	best := 1
	for i := 1; i < n; i++ {
		if s[i] > s[i%best] {
			break
		}
		if s[i] < s[i%best] {
			best = i + 1
		}
	}

	p := s[:best]
	var b strings.Builder
	b.Grow(k)
	for b.Len() < k {
		rem := k - b.Len()
		if rem >= best {
			b.WriteString(p)
		} else {
			b.WriteString(p[:rem])
		}
	}

	fmt.Fprint(out, b.String())
}