You are given the string s of length n and the numbers p, q. Split the string s to pieces of length p and q.

For example, the string "Hello" for p = 2, q = 3 can be split to the two strings "Hel" and "lo" or to the two strings "He" and "llo".

Note it is allowed to split the string s to the strings only of length p or to the strings only of length q (see the second sample test).

Input

The first line contains three positive integers n, p, q (1 ≤ p, q ≤ n ≤ 100).

The second line contains the string s consists of lowercase and uppercase latin letters and digits.

Output

If it's impossible to split the string s to the strings of length p and q print the only number "-1".

Otherwise in the first line print integer k — the number of strings in partition of s.

Each of the next k lines should contain the strings in partition. Each string should be of the length p or q. The string should be in order of their appearing in string s — from left to right.

If there are several solutions print any of them.

Examples

Input

5 2 3
Hello


Output

2
He
llo


Input

10 9 5
Codeforces


Output

2
Codef
orces


Input

6 4 5
Privet


Output

-1


Input

8 1 1
abacabac


Output

8
a
b
a
c
a
b
a
c
#include <bits/stdc++.h>
using namespace std;
long long mod = 1e9 + 7;
inline long long int sqr(long long int x) { return x * x; }
map<long long int, long long int> M, Mn;
long long int A[300003], C[300003], dp[103];
char S[300003];
long long int one, zero, ansR, numNodes;
int main() {
  long long int T, i, j, h, l, r, k, s, a, b, c, d, n, m, w, x, y, v, z, t, p,
      q, curr, prev, sum, ans, pos, val, countA, secondMin, indicator;
  scanf("%lld%lld%lld", &n, &p, &q);
  a = -1;
  for (long long int i = (0); i <= (n); ++i) {
    if (n - p * i >= 0 && (n - p * i) % q == 0) {
      a = i;
    }
  }
  if (a == -1) {
    printf("-1\n");
    return 0;
  }
  string S;
  cin >> S;
  printf("%lld\n", a + (n - p * a) / q);
  for (long long int i = (0); i <= (a - 1); ++i) {
    for (long long int j = (0); j <= (p - 1); ++j) printf("%c", S[i * p + j]);
    printf("\n");
  }
  val = a * p;
  a = (n - p * a) / q;
  p = q;
  for (long long int i = (0); i <= (a - 1); ++i) {
    for (long long int j = (0); j <= (p - 1); ++j)
      printf("%c", S[val + i * p + j]);
    printf("\n");
  }
  return 0;
}
