Takahashi has a string S of length N consisting of lowercase English letters. On this string, he will perform the following operation K times:

* Let T be the string obtained by reversing S, and U be the string obtained by concatenating S and T in this order.
* Let S' be some contiguous substring of U with length N, and replace S with S'.



Among the strings that can be the string S after the K operations, find the lexicographically smallest possible one.

Constraints

* 1 \leq N \leq 5000
* 1 \leq K \leq 10^9
* |S|=N
* S consists of lowercase English letters.

Input

Input is given from Standard Input in the following format:


N K
S


Output

Print the lexicographically smallest possible string that can be the string S after the K operations.

Examples

Input

5 1
bacba


Output

aabca


Input

10 2
bbaabbbaab


Output

aaaabbaabb
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))