s = eval(input())

k = int(eval(input()))

ans = []

for i in range(1,k+1):

  for j in range(len(s)):

    if j+i > len(s): break



    ans.append(s[j:j+i])





ans = list(sorted(set(ans))) #setはsortedではソートできる。リストでソートしてsetにすると順序は保証されない



if k != 1:

  print((ans[k-1]))

else:

  print((min(list(s))))
s = eval(input())

K = int(eval(input()))



substrings = set()



for k in range(1,K+1):

    for i in range(len(s)):

        substrings.add(s[i:i+k])



ans = sorted(substrings)

print((ans[K-1]))
s = eval(input())
k = int(eval(input()))
ans = []
for i in range(1, k + 1):
    for j in range(len(s)):
        if j + i > len(s):
            break
        ans.append(s[j : j + i])
ans = list(sorted(set(ans)))  # setはsortedではソートできる。リストでソートしてsetにすると順序は保証されない
if k != 1:
    print((ans[k - 1]))
else:
    print((min(list(s))))

s = eval(input())
K = int(eval(input()))
substrings = set()
for k in range(1, K + 1):
    for i in range(len(s)):
        substrings.add(s[i : i + k])
ans = sorted(substrings)
print((ans[K - 1]))

-k = int(eval(input())) -ans = [] -for i in range(1, k + 1): -    for j in range(len(s)): -        if j + i > len(s): -            break -        ans.append(s[j : j + i]) -ans = list(sorted(set(ans)))  # setはsortedではソートできる。リストでソートしてsetにすると順序は保証されない -if k != 1: -    print((ans[k - 1])) -else: -    print((min(list(s)))) +K = int(eval(input())) +substrings = set() +for k in range(1, K + 1): +    for i in range(len(s)): +        substrings.add(s[i : i + k]) +ans = sorted(substrings) +print((ans[K - 1]))