#include <bits/stdc++.h>
using std::cin;
using std::cout;
using std::string;
char half_palindrome[5000][5000];
string s, ans;
short len;
long long k;
struct Node {
  Node* child[2] = {nullptr, nullptr};
  bool is_good = false;
  long long count_down = 0;
  short count_this = 0;
};
void create(Node* parent, short index) { parent->child[index] = new Node(); }
Node* add_rec(Node* now, short frm, short to) {
  if (to - frm == 0) {
    now->count_this += 1;
    return now;
  } else {
    short index = s[frm] == 'a' ? 0 : 1;
    if (now->child[index] == nullptr) create(now, index);
    return add_rec(now->child[index], frm + 1, to);
  }
}
char dp(short i, short j) {
  if (i >= j) return 1;
  if (half_palindrome[i][j] != -1) return half_palindrome[i][j];
  if (s[i] == s[j])
    half_palindrome[i][j] = dp(i + 2, j - 2);
  else
    half_palindrome[i][j] = 0;
  return half_palindrome[i][j];
}
long long calc_down(Node* now) {
  for (short i = 0; i < 2; i++)
    if (now->child[i] != nullptr) now->count_down += calc_down(now->child[i]);
  now->count_down += now->count_this;
  return now->count_down;
}
void find_el(Node* now, long long k_left) {
  if (k_left - now->count_this > 0) {
    k_left -= now->count_this;
    if (now->child[0] != nullptr) {
      if (k_left <= now->child[0]->count_down) {
        ans += 'a';
        find_el(now->child[0], k_left);
      } else {
        ans += 'b';
        find_el(now->child[1], k_left - now->child[0]->count_down);
      }
    } else {
      ans += 'b';
      find_el(now->child[1], k_left);
    }
  }
}
int main() {
  cin >> s >> k;
  len = s.size();
  for (short i = 0; i < len; i++)
    for (short j = 0; j < len; j++) half_palindrome[i][j] = -1;
  Node* root = new Node();
  Node* last;
  short j_last = 0;
  for (short i = 0; i < len; i++) {
    last = add_rec(root, i, i + 1);
    j_last = i;
    for (short j = i + 1; j < len; j++) {
      if (dp(i, j) == 1) {
        last = add_rec(last, j_last + 1, j + 1);
        j_last = j;
      }
    }
  }
  calc_down(root);
  find_el(root, k);
  cout << ans;
  return 0;
}
