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
/*
 * Code Author: Sanket Udgirkar.
 * DA-IICT
 */
import java.util.*;
import java.io.*;
public class Tester
{
	public static long mod=(long)1e9+7;
	
	public static void main(String[] args) 
	{
		InputReader s=new InputReader(System.in);
        OutputStream outputStream = System.out;
        //PrintWriter out=new PrintWriter(outputStream);
        
        int n=s.nextInt();
        int p=s.nextInt();
        int q=s.nextInt();
        String str=s.nextLine();
        
        int n1=0,n2=0;
        int flag=0;
        for(int i=0; i<=n; i++)
        {
        	for(int j=0; j<=n; j++)
        	{
        		if((p*i+q*j)==n)
        		{
        			flag=1;
        			n1=i;
        			n2=j;
        			break;
        		}
        	}
        }
        
        if(flag==1)
        {
        	System.out.println(n1+n2);
        	
        	int count=0;
        	for(int i=0; count!=n1; i=i+p)
        	{
        		count++;
        		System.out.println(str.substring(i, i+p));
        	}
        	
        	for(int i=n1*p; count!=(n1+n2); i=i+q)
        	{
        		count++;
        		System.out.println(str.substring(i, i+q));
        	}
        	
        }
        else
        	System.out.println("-1");
        
        //out.close();
	}   
	
	static long gcd(long a,long b)
	{
		if(b==0)
			return a;
		a%=b;
		return gcd(b,a);
	}
	
	static long exp(long a, long b)
	{
		if(b==0)
			return 1;
		if(b==1)
			return a;
		if(b==2)
			return a*a;
		
		if(b%2==0)
			return exp(exp(a,b/2),2);
		else
			return a*exp(exp(a,(b-1)/2),2);
	}
	
	static class Pair implements Comparable<Pair>
	{
		long x,f;
		Pair(long ii, long cc)
		{
			x=ii;
			f=cc;
		}
		
		public int compareTo(Pair o) 
		{
			return Long.compare(this.x, o.x);
		}
		
	}

    public static class InputReader 
    {
    	public BufferedReader reader;
    	public StringTokenizer tokenizer;
     
    	public InputReader(InputStream inputstream) 
    	{
    	      reader = new BufferedReader(new InputStreamReader(inputstream));
    	      tokenizer = null;
    	}
    	    
    	public String nextLine()
    	{
    	    String fullLine=null;
    	    while (tokenizer == null || !tokenizer.hasMoreTokens()) 
    	    {
    	        try {
    	              fullLine=reader.readLine();
    	            } 
    	        catch (IOException e) 
    	        {
    	              throw new RuntimeException(e);
    	        }
    	        return fullLine;
    	     }
    	     return fullLine;
    	}
    		public String next() 
    		{
    	      while (tokenizer == null || !tokenizer.hasMoreTokens()) {
    	        try {
    	          tokenizer = new StringTokenizer(reader.readLine());
    	        } catch (IOException e) {
    	          throw new RuntimeException(e);
    	        }
    	      }
    	      return tokenizer.nextToken();
    	    }
    		public long nextLong() {
    		      return Long.parseLong(next());
    		    }
    	    public int nextInt() {
    	      return Integer.parseInt(next());
    	    }
    	  }
 
}