#include<cstdio>
#include<iostream>
#include<cstring>
#include<vector>
#include<algorithm>
using namespace std;
const int MAXN=int(1e4+5);
int n,k;
char Max,Min,Ans[MAXN],s[MAXN];
void Check(char *s,int k) {
    char t[MAXN];
    int nw=n,len=0;
    while(nw>=1&&s[nw]==Min)
        nw--,len++;
    while(k!=0&&len<n)
        len*=2,k--;
    if(len>=n) {
        for(int i=1;i<=n;i++)
            Ans[i]=Min;
        printf("%s\n",Ans+1);
        exit(0);
    }
    for(int i=1;i<=len;i++)
        t[i]=Min;
    for(int i=len+1;i<=n;i++)
        t[i]=s[nw--];
    for(int i=1;i<=n;i++) {
        if(t[i]<Ans[i]) {
            for(int j=1;j<=n;j++)
                Ans[j]=t[j];
            return;
        }
        else
            if(t[i]>Ans[i])
                return;
    }
}
int main()
{
    scanf("%d%d%s",&n,&k,s+1);
    Min='z',Max='a';
    for(int i=1;i<=n;i++) {
        Min=min(Min,s[i]);
        Max=max(Max,s[i]);
        s[2*n-i+1]=s[i];
        Ans[i]='z';
    }
    if(Min==Max) {
        printf("%s\n",s+1);
        return 0;
    }
    if(s[n]==Min)
        Check(s,k);
    for(int i=n;i<=2*n;i++)
        if(s[i]==Min)
            Check(s+i-n,k-1);
    printf("%s\n",Ans+1);
}
