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
n,p,q = map(int,input().split())
nn = n
a = input()
if p+q == n:
    print(2)
    print(a[0:p])
    print(a[p:])
elif p+q<n:
    num = max(p,q)
    while n%min(p,q)!=0 and n>=0:
        n-=num
    if n>=0 and n%min(p,q)==0:
        d={max(p,q):(nn-n)//max(p,q),min(p,q):n//min(p,q)}
        print(sum(d.values()))
        x,y=max(p,q),min(p,q)
        i,j=0,0
        while d[x]!=0:
            print(a[i:x+i])
            i+=x
            d[x]-=1
        j+=i
        while d[y]!=0:
            print(a[j:y+j])
            j+=y
            d[y]-=1
    else:
        print(-1)
else:
    if n%p==0:
        print(n//p)
        for i in range(p,n+1,p):
            print(a[i-p:i])
    elif n%q==0:
        print(n//q)
        for i in range(q,n+1,q):
            print(a[i-q:i])
    else:
        print(-1)



