package main
import (
"bufio"
"io"
"os"
)
func main() {
data, _ := io.ReadAll(os.Stdin)
idx := 0
nextInt := func() int {
for idx < len(data) && data[idx] <= ' ' {
idx++
}
x := 0
for idx < len(data) && data[idx] > ' ' {
x = x*10 + int(data[idx]-'0')
idx++
}
return x
}
nextToken := func() []byte {
for idx < len(data) && data[idx] <= ' ' {
idx++
}
start := idx
for idx < len(data) && data[idx] > ' ' {
idx++
}
return data[start:idx]
}
nextInt()
k := nextInt()
s := nextToken()
n := len(s)
p := 1
for i := 1; i < n; i++ {
if s[i] > s[i%p] {
break
}
if s[i] < s[i%p] {
p = i + 1
}
}
ans := make([]byte, k)
for i := 0; i < k; i++ {
ans[i] = s[i%p]
}
out := bufio.NewWriterSize(os.Stdout, 1<<20)
out.Write(ans)
out.Flush()
}