← Home
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()
}