#include <bits/stdc++.h>
using namespace std;
const int www = 9;
const int Size = 10000;
char buffer[Size];
int dr[] = {-1, 0, 1, 0};
int dc[] = {0, 1, 0, -1};
const int inf = 0x0fffffff;
const int size = 1000;
int d[size];
int solution(int nTest) {
  int k, a, b;
  scanf("%d%d%d", &k, &a, &b);
  scanf("%s", buffer);
  string s = buffer;
  int n = s.size();
  if (n / k >= a && (n + k - 1) / k <= b) {
    vector<string> res;
    int t = n / k;
    int tt = (n + k - 1) / k;
    int r = k - (n % k);
    for (int i = 0; i < k - (n % k); i++) {
      res.push_back(s.substr(i * t, t));
    }
    for (int i = 0; i < n % k; i++) {
      res.push_back(s.substr(t * r + i * tt, tt));
    }
    for (int i = 0; i < res.size(); i++) {
      puts(res[i].c_str());
    }
    return 0;
  }
  puts("No solution");
  return 0;
}
int main() {
  int i = 0, n = 9999;
  while (i < n && solution(i)) {
    i++;
  }
  return 0;
}
