N,K=map(int,input().split())
S=input()
s=[S[i] for i in range(N)]
m=min(s)

if K>=14:
    ans=[m for i in range(N)]
    print("".join(ans))
elif K==1:
    res=["z"]*N
    s=s+s[::-1]
    for i in range(N+1):
        test=s[i:i+N]
        if res>test:
            res=test
    print("".join(res))
else:
    cnt=0
    for i in range(N-1,-1,-1):
        if s[i]==m:
            cnt+=1
        else:
            break
    res=cnt
    for i in range(N-1,-1,-1):
        if cnt<N:
            if s[i]==m:
                cnt+=1
            else:
                cnt=0
        else:
            if s[i]!=m:
                cnt=0
        res=max(res,cnt)

    test=[]
    cnt=0
    for i in range(N-1,-1,-1):
        if s[i]==m:
            cnt+=1
        else:
            break
    if res*2**(K-1)>=N:
        ans=[m]*N
        exit(print("".join(ans)))
    check=N-res*2**(K-1)
    if cnt==res:
        test.append(N-1)
    for i in range(N-1,-1,-1):
        if cnt<N:
            if s[i]==m:
                cnt+=1
            else:
                cnt=0
        else:
            if s[i]!=m:
                cnt=0
        if cnt==res:
            test.append(N-1+N-i)
    result=[]
    for t in test:
        temp=s+s[::-1]
        temp=temp[t+1-res-check:t+1-res]
        temp=temp[::-1]
        result.append(temp)
    ans1=min(result)
    ans=[m]*res*2**(K-1)+ans1
    print("".join(ans))