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()
l,k=len(s),int(input())
d=[[] for i in range(l*2+2)]

def y(i,j): return s[i:(i+j+1)//2:2]==s[j:(i+j)//2:-2] if i<j else True
def sol(ii,ll): 
  r=[s[x:i+ll+1] for x in d[ii]]
  return sorted(r)

for i in range(l):
  for j in range(i,l):
    if y(i,j): d[(ord(s[i])-97)*l+j-i]+=[i]

for i in range(l*2):
  if len(d[i])>=k: print(sol(i,i%l)[k-1]); break
  else: k-=len(d[i])