#include <bits/stdc++.h>
using namespace std;
char S[5050], U[5050];
long long N, N2, K;
char ans[5050];
long long i, j, k;
int main() {
  scanf("%lld%lld%s", &N, &K, S);
  N2 = N * 2;
  for (i = 0; i < N; i++) {
    U[i] = S[i];
    U[N * 2 - 1 - i] = S[i];
  }
  K--;
  char a = 'z';
  long long b = 0;
  j = 0;
  for (i = 0; i < N2; i++) {
    if (U[i] < a) {
      a = S[i];
      b = 1;
      j = 1;
    } else if (U[i] == a) {
      j++;
      b = max(b, j);
    } else {
      j = 0;
    }
  }
  for (i = 0; (b << i) < N; i++)
    ;
  if (i <= K) {
    for (i = 0; i < N; i++) {
      printf("%c", a);
    }
    return 0;
  }
  for (i = 0; i < b; i++) {
    ans[i] = a;
  }
  for (i = i; i < N; i++) {
    ans[i] = 'z';
  }
  for (i = N2 - 1; i >= N - 1; i--) {
    bool f = false;
    for (j = 0; j < N; j++) {
      if (ans[j] > U[i - j]) {
        break;
      } else if (ans[j] < U[i - j]) {
        f = true;
        break;
      }
    }
    if (f) continue;
    for (j = j; j < N; j++) {
      ans[j] = U[i - j];
    }
  }
  for (i = 0; i < (b << K); i++) {
    printf("%c", a);
  }
  for (j = i; j < N; j++) {
    printf("%c", ans[b + j - i]);
  }
  return 0;
}
