Problem: You are given a string t consisting of n lowercase Latin letters and an integer number k.

Let's define a substring of some string s with indices from l to r as s[l ... r].

Your task is to construct such string s of minimum possible length that there are exactly k positions i such that s[i ... i + n - 1] = t. In other words, your task is to construct such string s of minimum possible length that there are exactly k substrings of s equal to t.

It is guaranteed that the answer is always unique.

Input

The first line of the input contains two integers n and k (1 ≤ n, k ≤ 50) — the length of the string t and the number of substrings.

The second line of the input contains the string t consisting of exactly n lowercase Latin letters.

Output

Print such string s of minimum possible length that there are exactly k substrings of s equal to t.

It is guaranteed that the answer is always unique.

Examples

Input

3 4
aba


Output

ababababa


Input

3 2
cat


Output

catcat

Solution (in PYTHON3):

Solution:
import sys

n,k = map(int,sys.stdin.readline().split())
s = sys.stdin.readline().strip()

def getIn(s,k):
    main = s
    cut = ''
    tmp_cut = ''
    last_cut = ''
    for pos in range(len(s)-1):
        tmp_cut = tmp_cut+s[pos]
        if len(s) % len(tmp_cut)==0:
            if s.count(tmp_cut) == len(s)//len(tmp_cut):
                cut = tmp_cut
                break
        rfnd = s.rfind(tmp_cut)
        if rfnd!=-1:
            if rfnd+len(tmp_cut)==len(s):
                last_cut = tmp_cut
    if cut:
        main = main+cut*(k-1)
    else:
        main = main+s[len(last_cut):]*(k-1)
    #print(tmp_cut)
    return main
    
def doTest():
    assert getIn('aba',4)=='ababababa'
    assert getIn('cat',2)== 'catcat'
    assert getIn('abcabca',2)== 'abcabcabca'
    assert getIn('sfrpmsfrpmsfrpmsfrpm',3)== 'sfrpmsfrpmsfrpmsfrpmsfrpmsfrpm'
    
#doTest()
print(getIn(s,k))