#include <bits/stdc++.h>
using namespace std;
const long long ff = 1e6 + 15;
const long long M = 1e9 + 7;
const long long inf = 1e18 + 1;
vector<pair<long long, long long> > tail[ff];
char s[1003];
long long tr[ff][26], cnt = 1, ccnt, ccc, va[1003][1003], n, m, k;
void add(long long st) {
  long long now = 1;
  for (long long i = st; i <= n; ++i) {
    long long id = s[i] - 'a';
    if (!tr[now][id]) tr[now][id] = ++cnt;
    now = tr[now][id];
    tail[now].push_back(make_pair(st, i));
  }
}
void dfs(long long now) {
  ++ccnt;
  long long sz = tail[now].size();
  for (long long i = 0; i < sz; ++i)
    va[tail[now][i].first][tail[now][i].second] = ccnt;
  for (long long i = 0; i < 26; ++i)
    if (tr[now][i]) dfs(tr[now][i]);
}
struct Node {
  long long tt, va, dep;
};
bool operator<(Node x, Node y) { return x.tt > y.tt; }
long long f[1003][1003], g[1003][1003];
void Add(long long &x, long long y) {
  if (x == k + 1) return;
  if (x + y > k)
    x = k + 1;
  else
    x = x + y;
}
long long chk(long long x) {
  memset(f, 0, sizeof(f));
  memset(g, 0, sizeof(g));
  f[n + 1][0] = g[n + 1][0] = 1;
  for (long long i = n; i >= 1; --i) {
    long long l = i, r = n, hh = n + 1;
    while (l <= r)
      if (va[i][((l + r) >> 1)] >= x)
        hh = ((l + r) >> 1), r = ((l + r) >> 1) - 1;
      else
        l = ((l + r) >> 1) + 1;
    for (long long j = 1; j <= m; ++j) f[i][j] = g[hh + 1][j - 1];
    for (long long j = 0; j <= m; ++j)
      Add(g[i][j], g[i + 1][j]), Add(g[i][j], f[i][j]);
  }
  return f[1][m];
}
void init() {
  cin >> n >> m >> k;
  scanf("%s", s + 1);
  for (long long i = 1; i <= n; ++i) add(i);
  dfs(1);
  long long l = 1, r = ccnt, ans = 1;
  while (l <= r)
    if (chk(((l + r) >> 1)) >= k)
      ans = ((l + r) >> 1), l = ((l + r) >> 1) + 1;
    else
      r = ((l + r) >> 1) - 1;
  for (long long i = 1; i <= n; ++i)
    for (long long j = i; j <= n; ++j)
      if (va[i][j] == ans) {
        for (long long k = i; k <= j; ++k) cout << s[k];
        cout << "\n";
        return;
      }
}
signed main() {
  long long Ts = 1;
  for (long long i = 1; i <= Ts; ++i) init();
}
