#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=100005,inf=0x3f3f3f3f;
int read(){
	int f=1,g=0;
	char ch=getchar();
	for (;!isdigit(ch);ch=getchar()) if (ch=='-') f=-1;
	for (;isdigit(ch);ch=getchar()) g=g*10+ch-'0';
	return f*g;
}
int n,K;
char ch[N];
string ans,cur,a,b;
string calc(string &a,int k){
	int cnt=0;
	for (cnt=0;(cnt<n)&&(a[cnt]==a[0]);cnt++);
	string ret;
	for (int i=1;i<=n;i++)
	ret+=(i<=(cnt<<k)) ? a[0] : a[i-(cnt<<k)+cnt-1];
	return ret;
}
int main(){
	n=read();K=read();
	scanf(" %s",ch+1);
	if ((K>=20)||((1<<(K-1))>=n)){
		char c=ch[1];
		for (int i=1;i<=n;i++) c=min(c,ch[i]);
		for (int i=1;i<=n;i++) putchar(c);
		puts("");
		return 0;
	}
	for (int i=n;i;i--) b+=ch[i];
	cur=b;
	ans=calc(cur,K);
	for (int i=n;i;i--){
		b=ch[i]+b;
		cur=min(cur,b);
	}
	ans=min(ans,calc(cur,K-1));
	for (int i=0;i<n;i++) putchar(ans[i]);
	puts("");
	return 0;
}