#define _USE_MATH_DEFINES
#include <bits/stdc++.h>
using namespace std;

//template
#define rep(i,a,b) for(int i=(a);i<(b);i++)
#define rrep(i,a,b) for(int i=(a);i>(b);i--)
#define ALL(v) (v).begin(),(v).end()
typedef long long int ll; typedef pair<ll, ll> P;
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; }
template<typename A,size_t N,typename T>void Fill(A(&array)[N],const T &val){fill((T*)array, (T*)(array+N), val);}
const int inf = INT_MAX / 2; const ll INF = LLONG_MAX / 2;
//template end

string f(string s,int n){
    rrep(i,n-1,-1)s+=s[i];
    string t,res="";
    rep(i,1,n+1){
        t=s.substr(i,n); reverse(ALL(t));
        if(res=="")res=t;
        else chmin(res,t);
    }
    reverse(ALL(res));
    return res;
}
string g(string s,int n){
    string res=s;
    rrep(i,n-1,-1)s+=s[i];
    rep(i,1,n+1)chmin(res,s.substr(i,n));
    return res;
}

int main(){
    int n,k; scanf("%d%d",&n,&k);
    string s; cin>>s;
    rep(rot,0,min(16,k-1))s=f(s,n);
    cout<<g(s,n)<<endl;
    return 0;
}
