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.*;

/**
 *
 * Beschreibung
 *                                          --> Es fehlt noch eine Unterscheidung, ob ein String, der vielleicht doppelt vorne und hinten ist noch öfters drinne vorkommt!
 * @version 2.0 vom 28.08.2018
 * @author 
 */

public class Manyequalsubstrings {

  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt(); //Länge des Strings
    int k = sc.nextInt(); //benötigte Anzahl an Wiederholungen im neuen String des Strings
    sc.nextLine(); //Platzhalter String...
    String t = sc.nextLine(); //String, den es zu verarbeiten gilt! - und zu vergleichen!
    
    String x = t; //hier hinten dran hängen!
    String y = t; //hiermit dann Platz auffüllen!
    
    String y2 = y; //reset Kopie des y
    int anz = 1;
    
    String z = new String(); //der neue, zu befüllene String!
    
    
    if (n == 1 || k == 1) {         //fängt "falsche Tokenausgabe" ab
      for (int i = 0; i<k; i++) {
        z = z+x;
      } 
      
      System.out.println(z);
    } else {
      
      
      
      for (int i = 0; i<=(n*k); i++) { //hier wird der String erstellt --> er muss maximal so oft wiederholt werden, wie buchstaben*wdh
        
        z = y.substring(0, (i+1)) + x;
        //System.out.println(z);
        if (anzahldings(z, t)>anz) {
          //System.out.println("yey");
          y = z;
          y2 = y;
          anz++;
        } 
        
        //anz = anzahldings(z, t);
        
        if (anz==k) {
          System.out.println(z);
          break;  //beendet das vorne dranhängen
        } 
        
        y = y2;  //reset von y
      }
    }
    
    
    
  }
    
  public static int anzahldings (String t, String muster) {   //testet, ob der String nur aus der Zeichenkette besteht!
    int z = 0;
    if (0 != muster.length()) {
      for (int index = t.indexOf(muster, 0);
      index != -1;
      index = t.indexOf(muster, index + 1)) {
        z++;
      }
    }
    return z;
  }
    
    
} 
    //https://codeforces.com/problemset/problem/1029/A       --> Kommt bis 29