#include <bits/stdc++.h>

using namespace std;

int main(){
	ios_base::sync_with_stdio(false); 
  cin.tie(NULL); cout.tie(NULL); 

  string s; int k, n;
  cin >> n >> k >> s;

  vector < int > cnt(n, 0);
  char best = *min_element(s.begin(), s.end());



  if(k > 15) {
    for(int i = 0; i < n; ++i) cout << best;
  }
  else {
    if(k == 1) {
      string t = s, ans = s; reverse(t.begin(), t.end()); 
      s += t;
      for(int i = 0; i < n + 1; ++i) {
        if(ans > s.substr(i, n)) ans = s.substr(i, n);
      }
      cout << ans;
      return 0;
    }

    string t = s;
    reverse(t.begin(), t.end());
    
    string ans = s;

    s += t;

    k -= 1;

    int cnt = 0;
    for(int i = s.size() - 1; i >= 0; --i) {
      if(s[i] == best) cnt++;
      else {
        cnt = 0;
      } 

      int get = min(n, cnt << k);
  //    cout << cnt << endl;
      if(i < n - cnt) {
    //    cout << "bug" << endl;
        continue;
      }

      string tmp = s.substr(i - n + get, n - get);
      reverse(tmp.begin(), tmp.end());

      ans = min(ans, string(get, best) + tmp);
    }

    cout << ans;
  }


  return 0;
}