#include <bits/stdc++.h>
using namespace std;
const int N = 1e3 + 10;
const long long mod = 1e9 + 7;
const long long inf = 1e18 + 10;
long long n, L, k;
string s, ans[N];
int ptr;
void doIt(int l, int r) {
  if (l + 1 == r) {
    while (ans[l].size() < L) ans[l] += s[ptr], ptr++;
    return;
  }
  char last = s[ptr];
  while (1) {
    for (int i = l; i < r; i++) {
      if (s[ptr] != last) {
        doIt(i, r);
        return;
      }
      if (ans[i].size() == L) return;
      ans[i] += s[ptr];
      last = s[ptr];
      ptr++;
    }
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> L >> k >> s;
  sort(s.begin(), s.end());
  doIt(0, k);
  for (int i = 0; i < n; i++)
    while (ans[i].size() < L) ans[i] += s[ptr], ptr++;
  sort(ans, ans + n);
  for (int i = 0; i < n; i++) cout << ans[i] << '\n';
  return 0;
}
