#include <bits/stdc++.h>
using namespace std;
const int N = 10005;
char s[N], mi = 'z', ans[N], tp[N];
int n, k;
inline bool cmp_min(char *a, char *b) {
  for (register int i = 1; i <= n; ++i)
    if (a[i] != b[i]) return a[i] < b[i];
  return 0;
}
inline void solve(char *s, int k) {
  int nw = n, len = 0;
  while (nw && s[nw] == mi) --nw, ++len;
  while (k && len < n) --k, len <<= 1;
  len = min(n, len);
  register int i;
  for (i = 1; i <= len; ++i) tp[i] = mi;
  if (len == n) puts(tp + 1), exit(0);
  for (i = len + 1; i <= n; ++i) tp[i] = s[nw--];
  if (cmp_min(tp, ans))
    for (i = 1; i <= n; ++i) ans[i] = tp[i];
}
int main() {
  register int i;
  for (scanf("%d%d%s", &n, &k, s + 1), i = 1; i <= n; ++i)
    mi = min(s[i], mi), s[(n << 1) - i + 1] = s[i], ans[i] = 'z';
  for (solve(s, k), i = n + 1; i <= (n << 1); ++i) solve(s + i - n, k - 1);
  return puts(ans + 1), 0;
}
