#include <bits/stdc++.h>
using namespace std;
const int N = 5e3 + 10;
int n, k, L[N];
string s;
int main() {
  cin >> n >> k >> s;
  char mn = *min_element(s.begin(), s.end());
  string t = s;
  reverse(t.begin(), t.end());
  t = s + t;
  for (int i = 0; i < n + n; i++) {
    if (i && t[i] == mn)
      L[i] = L[i - 1] + 1;
    else
      L[i] = 0;
  }
  int mx = *max_element(L, L + n + n), len = mx;
  while (k > 1 && len < n) --k, len <<= 1;
  if (len >= n)
    cout << string(n, mn);
  else {
    string ans;
    for (int i = n - 1; i < n + n; i++)
      if (L[i] == mx) {
        string tmp = string(len, mn) + t.substr(n + n - 1 - i + mx, n - len);
        if (ans.empty() || ans > tmp) ans = tmp;
      }
    cout << ans;
  }
  return 0;
}
