Anfisa the monkey learns to type. She is yet unfamiliar with the "space" key and can only type in lower-case Latin letters. Having typed for a fairly long line, Anfisa understood that it would be great to divide what she has written into k lines not shorter than a and not longer than b, for the text to resemble human speech more. Help Anfisa.

Input

The first line contains three integers k, a and b (1 ≤ k ≤ 200, 1 ≤ a ≤ b ≤ 200). The second line contains a sequence of lowercase Latin letters — the text typed by Anfisa. It is guaranteed that the given line is not empty and its length does not exceed 200 symbols.

Output

Print k lines, each of which contains no less than a and no more than b symbols — Anfisa's text divided into lines. It is not allowed to perform any changes in the text, such as: deleting or adding symbols, changing their order, etc. If the solution is not unique, print any of them. If there is no solution, print "No solution" (without quotes). 

Examples

Input

3 2 5
abrakadabra


Output

ab
rakad
abra


Input

4 1 2
abrakadabra


Output

No solution
import java.io.*;
import java.util.*;

/**
 * Built using my Brain
 * Actual solution is at the bottom
 *
 * @author Lenard Hoffstader
 */

public class cfjava
{
   public static void main(String[] args)
   {
      OutputStream outputStream = System.out;
      FastReader in = new FastReader();
      PrintWriter out = new PrintWriter(outputStream);
      PROBLEM solver = new PROBLEM();
      int t=1;
      // t=in.nextInt();
      for(int i=0;i<t;i++){
         solver.solve(in, out);
      }
      out.close();
   }

   static class PROBLEM
   {
      public void solve(FastReader sc,PrintWriter out)
      {
         int k,a,b;
         k=sc.nextInt();
         a=sc.nextInt();
         b=sc.nextInt();
         char s[]=sc.nextLine().toCharArray();
         if(s.length<a || s.length>k*b || a*k>s.length){
            out.println("No solution");
            return;
         }
         int n=s.length;
         int l,e;
         l=n/k;
         e=n%k;
         int idx=0;
         for(int i=1;i<=k;i++){
            for(int j=1;j<=l+(i<=e?1:0);j++){
               out.print(s[idx]);idx++;
               
            }
            out.println();
         }
      }
   }

   static class FastReader 
   { 
      BufferedReader br; 
      StringTokenizer st; 

      public FastReader() 
      { 
         br = new BufferedReader(new InputStreamReader(System.in)); 
      } 

      String next() 
      { 
         while (st == null || !st.hasMoreElements()) 
         {
            try
            { 
               st = new StringTokenizer(br.readLine()); 
            } 
            catch (IOException  e) 
            { 
               e.printStackTrace(); 
            } 
         } 
         return st.nextToken(); 
      } 

      int nextInt(){return Integer.parseInt(next());}

      long nextLong(){return Long.parseLong(next());} 

      double nextDouble(){return Double.parseDouble(next());}

      boolean nextBoolean(){return Boolean.parseBoolean(next());}

      String nextLine() 
      { 
         String str = ""; 
         try
         { 
            str = br.readLine(); 
         } 
         catch (IOException e){e.printStackTrace();} 
         return str; 
      } 
   }
}