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
from __future__ import division
from sys import stdin, stdout
# from fractions import gcd
# from math import *
# from operator import mul
# from functools import reduce
# from copy import copy
from collections import deque, defaultdict, Counter

rstr = lambda: stdin.readline().strip()
rstrs = lambda: [str(x) for x in stdin.readline().split()]
rint = lambda: int(stdin.readline())
rints = lambda: [int(x) for x in stdin.readline().split()]
rstr_2d = lambda n: [rstr() for _ in range(n)]
rint_2d = lambda n: [rint() for _ in range(n)]
rints_2d = lambda n: [rints() for _ in range(n)]
pr = lambda args, sep: stdout.write(sep.join(map(str, args)) + '\n')
out = [-1]

n, p, q = rints()
s = rstr()

for i in range(p, n + 1, p):
    div, mod = divmod(n - i, q)
    if not mod:
        out = [i // p + div]
        for j in range(p - 1, i, p):
            out.append(s[j - p + 1:j + 1])

        for j in range(i + q - 1, n, q):
            out.append(s[j - q + 1:j + 1])

        pr(out, '\n')
        exit()

for i in range(q, n + 1, q):
    div, mod = divmod(n - i, p)
    if not mod:
        out = [i // q + div]
        for j in range(q - 1, i, q):
            out.append(s[j - q + 1:j + 1])

        for j in range(i + p - 1, n, p):
            out.append(s[j - p + 1:j + 1])

        pr(out, '\n')
        exit()

pr(out, '\n')
