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.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class A {

	public static void main(String[] args) throws IOException {
		//BufferedReader input = new BufferedReader(new FileReader("input.txt"));  
		BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
		String s[] = input.readLine().split(" ");
		int n = Integer.parseInt(s[0]);
		int p = Integer.parseInt(s[1]);
		int q = Integer.parseInt(s[2]);
		String word = input.readLine();
		ArrayList<String> list = new ArrayList<String>();
		boolean divisible= false;
		
		
		int pcount = 0;
		int qcount = 0;		
		//assume atleast 1 sublength of p 
		for (int i = n-p; i >=0 ; i-=p) {
			pcount++;
			if(i%q==0){
				qcount+= (i/q);
				break;
			}		
		}
		if(pcount*p + qcount*q == n ){
			divisible=true;
			for (int i = 0; i < pcount; i++) {
				String sub = (String)word.subSequence(p*i, p*i+p);
				list.add(sub);
			}
			for (int i = 0; i < qcount; i++) {
				String sub = (String)word.subSequence(p*pcount +q*i, p*pcount+q*i+q);
				list.add(sub);
			}					
		}else{
			
		    pcount = 0;
			qcount = 0;		
			//assume atleast one sub sting of length q
			for (int i = n-q; i >=0 ; i-=q) {
				qcount++;
				if(i%p==0){
					pcount+= (i/p);
					break;
				}		
			}
			if(pcount*p + qcount*q == n ){
				divisible=true;
				for (int i = 0; i < qcount; i++) {
					String sub = (String)word.subSequence(q*i, q*i+q);
					list.add(sub);
				}
				for (int i = 0; i < pcount; i++) {
					String sub = (String)word.subSequence(p*pcount +q*i, p*pcount+q*i+q);
					list.add(sub);
				}	
			}
		}
		
		if(divisible){
			System.out.println(pcount+qcount);
			for (String str : list) {
				System.out.println(str);
			}
		}else
			System.out.println("-1");

	}

}
