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.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.util.*;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.InputStream;

public class Main {
	
    public static void main(String[] args) throws FileNotFoundException {
//    	File file1 = new File("C:/Users/hasee/Desktop/std.in");
//    	File file3 = new File("C:/Users/hasee/Desktop/std.out");
//    	File file2 = new File("C:/Users/hasee/Desktop/2.txt");
//    	InputStream inputStream = new FileInputStream(file1);
//    	InputStream inputStream1 = new FileInputStream(file3);
//    	OutputStream outputStream = new FileOutputStream(file2);
    	InputStream inputStream = System.in;
    	OutputStream outputStream = System.out;
        InputReader in = new InputReader(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        TaskA solver = new TaskA();
        solver.solve(1, in, out);
        out.close();
    }
    
    static class TaskA {
    	
        public void solve(int testNumber, InputReader in, PrintWriter out) {    
        	
        	int a = in.nextInt();
        	int b = in.nextInt();
        	String s = in.next();
        	int t = -1;
        	for(int n = 1; n < a; n++){;
        		if(s.charAt(n) == s.charAt(0)){
        			boolean is = false;
        			for(int m = n+1; m < a;m++){
        				if(s.charAt(m) != s.charAt(m-n)){
        					is = true;
        					break;
        				}
        			}
        			if(!is){
        				t = n;
        				break;
        			}
        		}
        	}
        	String ans = "";
        	if(t==-1){      		
        		for(int n = 0; n < b; n++){
        			ans += s;
        			
        		}       		
        	}
        	else if(t==1&&s.charAt(0) == s.charAt(1)){
        		String ss = s.substring(s.length()-1, s.length());
        		ans = s;
        		for(int n = 1; n < b; n++){
        			ans += ss;       			
        		}
        	}
        	else{
        		String ss = s.substring(s.length()-t, s.length());
        		ans = s;
        		for(int n = 1; n < b; n++){
        			ans += ss;
        		}
        	}
        	System.out.println(ans);
        	
        }
        	
    }

    static class InputReader {
        public BufferedReader reader;
        public StringTokenizer tokenizer;

        public InputReader(InputStream stream) {
            reader = new BufferedReader(new InputStreamReader(stream), 32768);
            tokenizer = null;
        }

        public String next() {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                try {
                    tokenizer = new StringTokenizer(reader.readLine());
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            return tokenizer.nextToken();
        }

        public int nextInt() {
            return Integer.parseInt(next());
        }
        
        public double nextDouble() {
        	return Double.parseDouble(next());
        }
        
        public long nextLong() {
            return Long.parseLong(next());
        }
        
    }
}

class Node{
	long gcd,t;
}