#include <bits/stdc++.h>
using namespace std;
namespace TYC {
const int N = 5005;
int n, k, L[N];
char S[N << 1], Ans[N], R[N];
void solve(int p, int len) {
  if (p + len - 1 != n) {
    p = n - p - len + n + 2;
    len = len * (1 << min(k - 1, 16));
  } else
    len = len * (1 << min(k, 16));
  if (len >= n) {
    for (int i = 1; i <= n; i++) putchar(S[p]);
    exit(0);
  }
  for (int i = 1; i <= len; i++) R[i] = S[p];
  for (int i = 1; i <= n - len; i++) R[len + i] = S[p - i];
  for (int i = 1; i <= n; i++)
    if (R[i] != Ans[i]) {
      if (R[i] < Ans[i]) memcpy(Ans, R, sizeof(char[n + 1]));
      break;
    }
}
void work() {
  scanf("%d%d%s", &n, &k, S + 1);
  char minc = S[1];
  int maxl = 0;
  for (int i = 1; i <= n; i++) minc = min(minc, S[i]);
  for (int i = 1; i <= n; i++)
    if (S[i] == minc)
      maxl = max(maxl, L[i] = S[i] == S[i - 1] ? L[i - 1] + 1 : 1);
  for (int i = 1; i <= n; i++) S[i + n] = S[n - i + 1];
  Ans[1] = char('z' + 1);
  for (int i = 1; i <= n; i++)
    if (L[i] == maxl) solve(i - L[i] + 1, L[i]);
  puts(Ans + 1);
}
}  // namespace TYC
int main() {
  TYC::work();
  return 0;
}
