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 CPP):

Solution:
#include <bits/stdc++.h>
using namespace std;
int dx[] = {1, -1, 0, 0};
int dy[] = {0, 0, 1, -1};
int dx8[] = {1, -1, 0, 0, 1, 1, -1, -1};
int dy8[] = {0, 0, 1, -1, 1, -1, 1, -1};
bool isvowel(char c) {
  switch (c) {
    case 'a':
    case 'e':
    case 'i':
    case 'o':
    case 'u':
      return true;
    default:
      return false;
  }
}
bool isValid(long long x, long long y, long long n, long long m) {
  if (x < 0 || x > n - 1 || y < 0 || y > m - 1) return false;
  return true;
}
bool comp(pair<long long, long long> x, pair<long long, long long> y) {
  if (x.first == y.first) return x.second < y.second;
  return x.first < y.first;
}
bool isPrime(long long x) {
  if (x == 2 || x == 3) return true;
  if (x % 2 == 0) return false;
  for (int i = 3; i * i <= x; i += 2) {
    if (x % i == 0) return false;
  }
  return true;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int T;
  T = 1;
  while (T--) {
    long long n, k, i;
    cin >> n >> k;
    string s;
    cin >> s;
    char c = s[0];
    bool f = false;
    for (i = 1; i < s.length(); i++) {
      if (c == s[i]) {
        string x, y, z;
        z = s.substr(0, i);
        x = s.substr(i, n);
        y = s.substr(0, x.length());
        if (x == y) {
          f = true;
          while (k--) cout << z;
          cout << x;
          break;
        }
      }
    }
    if (!f) {
      while (k--) cout << s;
    }
  }
  return 0;
}