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
def divide(n, k, s, t):
    array = []
    for j in xrange(k, len(s) - t, n):
        mini = s[j:j + n]
        #print "mini " + mini + str(len(mini))
        if len(mini) == n:
            array.append(mini)
    return array


def splitter():
    n, p, q =[int(x) for x in raw_input().split()]
    text = raw_input()
    maxi = 0
    mini = 0
    index = 0
    if p > q:
        maxi = p
        mini = q
    else:
        maxi = q
        mini = p
    #print "max" + str(max)
    permisionmax = n % maxi == 0
    maxnum = (n / maxi) + 1
    permisionmin = n % mini == 0
    minnum = (n / mini) + 1
    mx = 0
    mn = 0
    suma = 0
    while suma < n:
        res = n - suma
        #print res
        if mini <= res and res > 0:
            suma = suma + mini
            res = n - suma
            mn += 1
            #print res
        if maxi <= res:
            suma = suma + maxi
            mx += 1

        if res < mini:
            break
    #print suma
    if suma != n:
        mx = 0
        mn = 0
        suma = 0
        while suma < n:
            suma = suma + maxi
            mx = mx + 1
            #print "mininum " +str(mini * minnum)
            res = n - suma

            if res % mini == 0 and res > 0:
                rm = res / mini
                #suma = suma - maxi
                suma = suma + (mini * rm)
                #mx = mx - 1
                mn = rm
                break
            #minnum -= 1
    #print suma
    if suma != n:
        mx = 0
        mn = 0
        suma = 0
        while suma < n:
            suma = suma + mini
            mn = mn + 1
            res = n - suma
            if res % mini == 0:
                rm = res / maxi
                suma = suma + (maxi * rm)
                mx = rm
                break
            maxnum -= 1

    permisionboth = True
    if suma != n or mx == 0 or mn == 0 or mini == maxi:
        permisionboth = False

    #permisionboth = n - (minnum * min) - (maxnum * max) == 0
    if not permisionmax and not permisionmin and not permisionboth:
        return [-1]
    elif permisionboth:
        #print "ambos"
        t = n - (maxi *mx)
        maxlist = divide(maxi, index, text, t)
        index = maxi * mx
        minlist = divide(mini, index, text, 0)
        return [len(maxlist) + len(minlist)] + maxlist + minlist
    elif permisionmin:
        #print "minimo"
        return [n / mini] + divide(mini, index, text, 0)
    else:
        #print "maximo"
        return [n / maxi] + divide(maxi, index, text, 0)


ss = splitter()
for i in ss:
    print i