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.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int k = input.nextInt(), a = input.nextInt(), b = input.nextInt();
        String s = input.next();
        int n = s.length();
        if (n < k * a || n > k * b) System.out.println("No solution");
        else {
            int x = n / k, y = n % k, res = 0;
            for (int i = 1; i <= y; i++) {
                for (int j = 0; j <= x; j++) System.out.print(s.charAt(res++));
                System.out.println();

            }
            for (int i = 1; i <= k - y; i++) {
                for (int j = 0; j < x; j++) System.out.print(s.charAt(res++));
                System.out.println();
            }
        }
    }

    public static int minCost(int[] array) {
        int len = array.length;
        if (len == 0 || len == 1) {
            return 0;
        }
        int sum = 0;
        LinkedList<Integer> queue = new LinkedList<>();
        Arrays.sort(array);
        queue.offer(array[0]);
        for (int i = 1; i < len; i++) {
            int temp = queue.getLast();
            if (array[i] <= temp) {
                sum += temp - array[i] + 1;
                queue.addLast(temp + 1);
            } else {
                queue.addLast(temp);
            }
        }
        return sum;
    }

    public static int mixx(int a, int b, int c) {
        return Math.min(Math.min(a, b), c);
    }
}
/**
 * 5
 * 4 0
 * 3 1
 * 2 0
 * 1 0
 * 5 0
 */

 	 	 									 	   			 	 		  		