Tomorrow Ann takes the hardest exam of programming where she should get an excellent mark. 

On the last theoretical class the teacher introduced the notion of a half-palindrome. 

String *t* is a half-palindrome, if for all the odd positions *i* (<img align="middle" class="tex-formula" src="https://espresso.codeforces.com/1495d729d87ff2c28e9afcddb312ddfe867511e1.png" style="max-width: 100.0%;max-height: 100.0%;"/>) the following condition is held: *t*<sub class="lower-index">*i*</sub> = *t*<sub class="lower-index">|*t*| - *i* + 1</sub>, where |*t*| is the length of string *t* if positions are indexed from 1. For example, strings "abaa", "a", "bb", "abbbaa" are half-palindromes and strings "ab", "bba" and "aaabaa" are not.

Ann knows that on the exam she will get string *s*, consisting only of letters a and b, and number *k*. To get an excellent mark she has to find the *k*-th in the lexicographical order string among all substrings of *s* that are half-palyndromes. Note that each substring in this order is considered as many times as many times it occurs in *s*.

The teachers guarantees that the given number *k* doesn't exceed the number of substrings of the given string that are half-palindromes.

Can you cope with this problem?
The first line of the input contains string *s* (1 ≤ |*s*| ≤ 5000), consisting only of characters 'a' and 'b', where |*s*| is the length of string *s*.

The second line contains a positive integer *k* —  the lexicographical number of the requested string among all the half-palindrome substrings of the given string *s*. The strings are numbered starting from one. 

It is guaranteed that number *k* doesn't exceed the number of substrings of the given string that are half-palindromes.
s=input()
def y(s): l=len(s)//2; return s[0:l:2]==s[-1:-l-1:-2] if l else True
l,k,d=len(s),int(input()),dict({})
for i in range(l):
  for j in range(i,l):
    if s[i:j+1] in d.keys(): d[s[i:j+1]]+=1
    else: d[s[i:j+1]]=1
for x in sorted(d): 
  if y(x): 
    k-=d[x]
    if k<=0: print(x); break
