Problem: You are given a string t consisting of n lowercase Latin letters and an integer number k.

Let's define a substring of some string s with indices from l to r as s[l ... r].

Your task is to construct such string s of minimum possible length that there are exactly k positions i such that s[i ... i + n - 1] = t. In other words, your task is to construct such string s of minimum possible length that there are exactly k substrings of s equal to t.

It is guaranteed that the answer is always unique.

Input

The first line of the input contains two integers n and k (1 ≤ n, k ≤ 50) — the length of the string t and the number of substrings.

The second line of the input contains the string t consisting of exactly n lowercase Latin letters.

Output

Print such string s of minimum possible length that there are exactly k substrings of s equal to t.

It is guaranteed that the answer is always unique.

Examples

Input

3 4
aba


Output

ababababa


Input

3 2
cat


Output

catcat

Solution (in JAVA):

Solution:
import java.io.*;
import java.util.*;

public class ManyIdenticalSubstrings {

	static StringTokenizer st;
	static BufferedReader br;

	public static void main(String[] args) {
		br = new BufferedReader(new InputStreamReader(System.in));
		Scanner sc = new Scanner(System.in);
		next();
		short k = Short.parseShort(next());
		String t = next();
		sc.close();
		PrintWriter out = new PrintWriter(new BufferedOutputStream(System.out));
		out.println(getMinIdenticalSubstring(t, k));
		out.close();
	}

	public static Boolean isMin(String source, short k) {
		for (short i = k; i < source.length(); i++) {
			if (source.charAt(i) != source.charAt(i % k))
				return false;
		}
		return true;
	}

	public static String getMinIdenticalSubstring(String source, short count) {
		short n = (short) (source.length());
		for (short i = 1; i <= n; i++) {
			if (i != n && !isMin(source, i))
				continue;
			String minSubstring = source.substring(0, i);
			String result = "";
			for (short j = 1; j < count; j++)
				result += minSubstring;
			return result + source;
		}
		throw new Error("Min substring not found");
	}

	static String next() {
		while (st == null || !st.hasMoreElements()) {
			try {
				st = new StringTokenizer(br.readLine());
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return st.nextToken();
	}
}