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.awt.color.*;
import java.util.*;
import java.awt.Point;
import java.math.*;
import java.io.*;
@SuppressWarnings("unused")
public class implementation {int[] b;	String g="";int c=0;int M=1000000000+7;ArrayList<Integer> list=new ArrayList<Integer>();String s;int[] size;int[] id;
int[]ab;int[] data;int mod=100000;LinkedList<Integer> queue=new LinkedList<Integer>();int dis=0;int max=0;ArrayList<Integer>[] arr;
	public static void main(String[] args)  {
                new implementation().solve();
                                  }
	long[] fact;long[] inv;
            public void solve(){
            	
            	int t=sc.nextInt() ;
            	int k=sc.nextInt();
            	String s=sc.next();
            	char ch=s.charAt(0);
            	for(int i=0;i<s.length();i++) {
            		if(s.charAt(i)!=ch) {
            			c=1;break;
            		}
            	}
            	if(c==0) {
            		for(int i=2;i<=k;i++) {
            			s=s+Character.toString(s.charAt(0));
            		}
            		System.out.println(s);
            	}else {int l=s.length();int u=-1;String y="";
            		for(int i=0;i<s.length()-1;i++) {
            			String a=s.substring(0, i+1);
            			String b=s.substring(l-1-i,l);
            			if(a.equals(b))
            				u=i;
            		}
            		if(u==-1) {
            			for(int i=0;i<l;i++) {
                			y=y+Character.toString(s.charAt(i));
                		}
            		}
            		else {
            		for(int i=u+1;i<l;i++) {
            			y=y+Character.toString(s.charAt(i));
            		}}
            		for(int j=2;j<=k;j++) {
            			s=s+y;            		}

            	System.out.println(s);}
            				
            			}
            		
            		
            		
            		
            public class Node{
       	     long x;long color;long y;
       	       Node par;
       	        public Node(long a,long b,long c) {
       	          	x=a;y=b;color=c;
       		
       	             }
                         }
                     class sortbyweight implements Comparator<Node>{

       				@Override
       				public int compare(Node arg0, Node arg1) {
       					// TODO Auto-generated method stub
       					
       					return (int)(arg0.color-arg1.color);
       				}}
       				
       				 FastReader sc=new FastReader();
       				 static class FastReader
       				     {
       				         BufferedReader br;
       				         StringTokenizer st;
       				  
       				         public FastReader()
       				         {
       				             br = new BufferedReader(new
       				                      InputStreamReader(System.in));
       				         }
       				  
       				         String next()
       				         {
       				             while (st == null || !st.hasMoreElements())
       				             {
       				                 try
       				                 {
       				                     st = new StringTokenizer(br.readLine());
       				                 }
       				                 catch (IOException  e)
       				                 {
       				                     e.printStackTrace();
       				                 }
       				             }
       				             return st.nextToken();
       				         }
       				  
       				         int nextInt()
       				         {
       				             return Integer.parseInt(next());
       				         }
       				  
       				         long nextLong()
       				         {
       				             return Long.parseLong(next());
       				         }
       				  
       				         double nextDouble()
       				         {
       				             return Double.parseDouble(next());
       				         }
       				  
       				         String nextLine()
       				         {
       				             String str = "";
       				             try
       				             {
       				                 str = br.readLine();
       				             }
       				             catch (IOException e)
       				             {
       				                 e.printStackTrace();
       				             }
       				             return str;
       				         }
       				     }}