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
import java.util.*;
public class Main {

	static String str(char x){
		return Character.toString(x);
	}

	static int intt(String x){
		return Integer.parseInt(x);
	}

	static boolean mod(int x, int y){
		if(x%y==0)
			return true;
		return false;
	}

	public static void main(String args[]) {
		Scanner s = new Scanner(System.in);
		int x = s.nextInt();
		int p = s.nextInt();
		int q = s.nextInt();
		String word = s.nextLine();
		word = s.nextLine();
		boolean force =false;
		boolean substract =false;
		force = mod(x%p,q);
		int times = 0;
		int sum=1;
		for (int i =0;i<x;i+=p) {
			if(x-i<p)
				break;
			int modulo = (x-(p*sum))%q;
			if(modulo==0){
				substract=true;
				break;
			}
			sum++;
		}
		if (p+q == x || x%p==0 || x%q==0 || force || substract) {
			String a ="";
			String b ="";
			if (p+q == x) {
				System.out.println(2);
				a = word.substring(0,p);
				b = word.substring(p,p+q);
			}
			else if (x%p==0) {
				System.out.println(x/p);
				for (int i =0;i<x;i+=p) {
					System.out.println(word.substring(i,i+p));
				}
			}
			else if(x%q==0){
				System.out.println(x/q);
				for (int i =0;i<x;i+=q) {
					System.out.println(word.substring(i,i+q));
				}
			}
			else if (force) {	
				int mod = x%p;
				System.out.println(x/p + mod/q);
				for (int i = 0;i<x-mod;i+=p){
					System.out.println(word.substring(i,i+p));
					times++;
				}
				int iniMod = x-mod;
				if (mod!=0) {
					for (int i =0;i<mod;i+=q ) {
						System.out.println(word.substring(iniMod+i,iniMod+i+q));
						times++;
					}
				}
			}
			else if (substract) {
				int rest=0;
				int n=1;
				for (int i =0;i<x;i+=p){
					if((x-(p*n))%q==0){
						rest++;
						break;	
					}
					rest++;
					n++;
				}
				System.out.println(rest+((x-rest*p)/q));
				for (int i = 0;i<rest*p;i+=p)
					System.out.println(word.substring(i,i+p));
				for (int i =rest*p;i<x;i+=q)
					System.out.println(word.substring(i,i+q));
			}
			if(a!="")
				System.out.println(a);
			if (b!="")
				System.out.println(b);
		}
		else
			System.out.println(-1);
	}
}
