#include<bits/stdc++.h>
using namespace std;
int n,k;
string s;
vector<string>can;
int main(){
	ios::sync_with_stdio(false);
	cin >> n >> k;
	char c='z';
	cin >> s;
	for(auto cur:s){
		c=min(c,cur);
	}
	if(k>13){
		for(int i=1; i<=n ;i++){
			cout << c;
		}
		cout << endl;
		return 0;
	}
	string t=s;reverse(t.begin(),t.end());
	string u=s+t;
	if(k==1){
		for(int i=n-1; i<2*n ;i++){
			can.push_back(u.substr(i-n+1,n));
		}
	}
	else{
		for(int i=n; i<2*n ;i++){
			if(u[i]==c) can.push_back(u.substr(i-n+1,n));
		}
		for(int i=2; i<=k ;i++){
			for(auto &cur:can){
				t=cur;
				reverse(t.begin(),t.end());
				u=cur+t;
				int ptr=n;
				while(ptr<2*n && u[ptr]==c) ptr++;
				cur=u.substr(ptr-n,n);
			}
		}
		for(auto& cur:can) reverse(cur.begin(),cur.end());
	}
	string ans=can[0];
	for(auto cur:can) ans=min(ans,cur);
	cout << ans << endl;
}