#include <bits/stdc++.h>
using namespace std;
int dp[200][200];
int sol[200][200][2];
int main() {
  string s;
  int n, p, q;
  cin >> n >> p >> q;
  cin >> s;
  int k = 0;
  dp[0][0] = 1;
  for (int i = 1; i <= n; i++) {
    for (int sum = 0; sum <= n; sum++) {
      if (dp[i - 1][sum] == 1) {
        dp[i][sum] = 1;
        sol[i][sum][0] = sol[i - 1][sum][0];
        sol[i][sum][1] = sol[i - 1][sum][1];
        if (sum + p <= n) {
          if (dp[i][sum + p] == 0) {
            dp[i][sum + p] = 1;
            sol[i][sum + p][0] = sol[i - 1][sum][0];
            sol[i][sum + p][1] = sol[i - 1][sum][1];
            sol[i][sum + p][0]++;
          }
        }
        if (sum + q <= n) {
          if (dp[i][sum + q] == 0) {
            dp[i][sum + q] = 1;
            sol[i][sum + q][0] = sol[i - 1][sum][0];
            sol[i][sum + q][1] = sol[i - 1][sum][1];
            sol[i][sum + q][1]++;
          }
        }
      }
    }
    int first = 0;
    if (dp[i][n] == 1) {
      cout << sol[i][n][0] + sol[i][n][1] << endl;
      for (int l = 0; l < sol[i][n][0]; l++) {
        for (int j = first; j < first + p; j++) {
          cout << s[j];
        }
        first += p;
        cout << endl;
      }
      for (int l = 0; l < sol[i][n][1]; l++) {
        for (int j = first; j < first + q; j++) {
          cout << s[j];
        }
        first += q;
        cout << endl;
      }
      return 0;
    }
  }
  cout << -1 << endl;
}
