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:
/*
If you want to aim high, aim high
Don't let that studying and grades consume you
Just live life young
******************************
What do you think? What do you think?
1st on Billboard, what do you think of it
Next is a Grammy, what do you think of it
However you think, I’m sorry, but shit, I have no fcking interest
*******************************
I'm standing on top of my Monopoly board
That means I'm on top of my game and it don't stop
til my hip don't hop anymore
https://www.a2oj.com/Ladder16.html
*******************************
300iq as writer = Sad!
*/
import java.util.*;
import java.io.*;
import java.math.*;

   public class x1029A
   {
      public static void main(String hi[]) throws Exception
      {
         BufferedReader infile = new BufferedReader(new InputStreamReader(System.in));
         StringTokenizer st = new StringTokenizer(infile.readLine());
         int N = Integer.parseInt(st.nextToken());
         int K = Integer.parseInt(st.nextToken());
         char[] arr = infile.readLine().toCharArray();
         if(N == 1)
         {
            while(K-->0)
               System.out.print(arr[0]);
            return;
         }
         char[] res = new char[3000];
         Arrays.fill(res, '?');
         while(cnt(res, arr) < K)
         {
            for(int i=0; i < 3000; i++)
               if(i+N-1 < 3000 && res[i+N-1] == '?')
               {
                  boolean works = true;
                  for(int a=0; a < N; a++)
                  {
                     if(res[a+i] == '?')
                        break;
                     if(arr[a] != res[a+i])
                     {
                        works = false;
                        break;
                     }
                  }
                  if(works)
                  {
                     for(int a=i; a < i+N; a++)
                        res[a] = arr[a-i];
                     break;
                  }
               }
         }
         StringBuilder sb = new StringBuilder();
         for(char c: res)
         {
            if(c == '?')
               break;
            sb.append(c);
         }
         System.out.println(sb);
      }
      public static int cnt(char[] res, char[] arr)
      {
         int rest = 0;
         for(int i=0; i < res.length-arr.length+1; i++)
         {
            boolean works = true;
            for(int a=0; a < arr.length; a++)
               if(arr[a] != res[i+a])
                  works = false;
            if(works)
               rest++;
         }
         return rest;
      }
   }