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.util.*; 
import java.io.*;
 
public class Main {
	
	public static int mod = 1000000007;
	
	public static void solve(InputReader in) {
		int n = in.readInt(); 
		int k = in.readInt();
		String s = in.readString();
		int cnt = 1; 
		int pos = 1;
		String ans = new String(s); 
		while(cnt < k) {
			if(pos >= ans.length()) {
				ans += s;
				cnt++; 
			}
			else {
				int temp = 0; 
				boolean ok = true; 
				for(int i = 0; i<n; i++) {
					if(i+pos >= ans.length()) break; 
					temp++; 
					if(ans.charAt(pos+i) != s.charAt(i)) ok = false; 
				}
				if(ok) {
					ans += s.substring(temp);
					cnt++; 
				}
			}
			pos++; 
		}
		System.out.println(ans);
	}
	
 
	public static void main(String[] args) {
		// jai shree krishna
		InputReader in = new InputReader(System.in); 
		int t = 1;
		while (t-- > 0)
			solve(in);
	}
}
 
 
class InputReader{
	private InputStream stream;
	private byte[] buf = new byte[1024];
	private int curChar;
	private int numChars;
	private SpaceCharFilter filter;
 
	public InputReader(InputStream stream) {
		this.stream = stream;
	}
 
	public int read() {
		if (numChars == -1)
			throw new InputMismatchException();
		if (curChar >= numChars) {
			curChar = 0;
			try {
				numChars = stream.read(buf);
			} catch (IOException e) {
				throw new InputMismatchException();
			}
			if (numChars <= 0)
				return -1;
		}
		return buf[curChar++];
	}
 
	public int readInt() {
		int c = read();
		while (isSpaceChar(c))
			c = read();
		int sgn = 1;
		if (c == '-') {
			sgn = -1;
			c = read();
		}
		int res = 0;
		do {
			if (c < '0' || c > '9')
				throw new InputMismatchException();
			res *= 10;
			res += c - '0';
			c = read();
		} while (!isSpaceChar(c));
		return res * sgn;
	}
 
	public String readString() {
		int c = read();
		while (isSpaceChar(c))
			c = read();
		StringBuilder res = new StringBuilder();
		do {
			res.appendCodePoint(c);
			c = read();
		} while (!isSpaceChar(c));
		return res.toString();
	}
 
	public long readLong() {
		int c = read();
		while (isSpaceChar(c)) {
			c = read();
		}
		int sgn = 1;
		if (c == '-') {
			sgn = -1;
			c = read();
		}
		long res = 0;
		do {
			if (c < '0' || c > '9') {
				throw new InputMismatchException();
			}
			res *= 10;
			res += c - '0';
			c = read();
		} while (!isSpaceChar(c));
		return res * sgn;
	}
	
	public boolean isSpaceChar(int c) {
		if (filter != null)
			return filter.isSpaceChar(c);
		return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
	}
     
	public String next() {
		return readString();
	}
    
    public interface SpaceCharFilter {
		public boolean isSpaceChar(int ch);
	}
}
 
 
 
class pair implements Comparable<pair> {
	long first;
	long second;
 
	pair(long a, long b) {
		this.first = a;
		this.second = b;
	}
 
	public long getFirst() {
		return first;
	}
 
	public long getSecond() {
		return second;
	}
 
	public String toString() {
		return first + " " + second;
	}
 
	public boolean equals(Object o) {
		return o instanceof pair && ((pair) o).first == first && ((pair) o).second == second;
	}
 
	public int compareTo(pair a) {
		return Long.compare(first, a.first);
	}
 
	public int hashCode() {
		return (31 * (int) first + (int) second);
	}
}