#include <bits/stdc++.h>
const double PI = acos(-1.0);
const int INF = 0x3f3f3f3f;
const double eps = 1e-8;
const int MAXN = 500 + 10;
const int MOD = 1e9 + 7;
const int dir[][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};
const int seed = 131;
int cases = 0;
int main() {
  int n, p, q;
  scanf("%d%d%d", &n, &p, &q);
  std::string str;
  std::cin >> str;
  for (int i = 0; i * p <= n; i++) {
    int rem = n - i * p;
    if (rem % q == 0) {
      printf("%d\n", i + rem / q);
      for (int j = 1; j <= i; j++)
        std::cout << str.substr((j - 1) * p, p) << std::endl;
      for (int j = 1; j <= rem / q; j++)
        std::cout << str.substr(i * p + (j - 1) * q, q) << std::endl;
      return 0;
    }
  }
  puts("-1");
  return 0;
}
