'use strict'

function main(s) {

  s = s.split('\n')
  const str = s[0];
  const len = str.length;
  const k   = Number(s[1]);

  // 文字列に出現する文字を辞書順に並び替えて取得
  // ex). [ 'a', 'c', 'd', 'e', 'n', 'o', 'r', 't' ]
  const initials = [...new Set(str.split(''))].sort();
  let index = 0;
  const dic = new Set();

  // ex). 'a'でk個辞書が集まらなければ, 次の'c'のループへ...
  while (dic.size < k) {
    for (let i = 0; i < len; i++) {
      let j = 1;
      if (str.slice(i, i + j) !== initials[index]) continue;

      // 'a'に一致する地点から最大5文字分辞書に追加
      while (i + j <= len && j <= 5) {
        dic.add(str.slice(i, i + j));
        j += 1;
      }
    }
    index += 1;
  }

  const ans = [...dic].sort()[k - 1];
  console.log(ans);
}

main(require("fs").readFileSync("/dev/stdin", "utf8"));
