You are given a string q. A sequence of k strings s1, s2, ..., sk is called beautiful, if the concatenation of these strings is string q (formally, s1 + s2 + ... + sk = q) and the first characters of these strings are distinct.

Find any beautiful sequence of strings or determine that the beautiful sequence doesn't exist.

Input

The first line contains a positive integer k (1 ≤ k ≤ 26) — the number of strings that should be in a beautiful sequence. 

The second line contains string q, consisting of lowercase Latin letters. The length of the string is within range from 1 to 100, inclusive.

Output

If such sequence doesn't exist, then print in a single line "NO" (without the quotes). Otherwise, print in the first line "YES" (without the quotes) and in the next k lines print the beautiful sequence of strings s1, s2, ..., sk.

If there are multiple possible answers, print any of them.

Examples

Input

1
abca


Output

YES
abca


Input

2
aaacas


Output

YES
aaa
cas


Input

4
abc


Output

NO

Note

In the second sample there are two possible answers: {"aaaca", "s"} and {"aaa", "cas"}.
import java.util.Scanner;

public class A {

    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        sc.nextLine();
        char[] q = sc.nextLine().toCharArray();
        int sande[][] = new int[2][n];
        int count = 1;
        if (n == 1) {
            System.out.println("YES");
            for (int i = 0; i < q.length; i++) {
                System.out.print(q[i]);
            }
            System.out.println();
            return;
        }
        boolean occured[] = new boolean[26];
        occured[q[0] - 'a'] = true;
        StringBuffer ans = new StringBuffer();
        for (int i = 1; i < q.length; i++) {
            if (!occured[q[i] - 'a']) {
                occured[q[i] - 'a'] = true;
                sande[0][count] = i;
                sande[1][count - 1] = i - 1;
                count++;
                if (count == n) {
                    sande[1][count - 1] = q.length - 1;
                    ans.append("YES\n");
                    for (int j = 0; j < n; j++) {
                        for (int k = sande[0][j]; k <= sande[1][j]; k++) {
                            ans.append(q[k]);
                        }
                        ans.append("\n");
                    }
                    System.out.print(ans);
                    return;
                }
            }
        }
        System.out.println("NO");
    }

    static double eps = 1e-9;

    static int compare(double a, double b) {
        if (Math.abs(a - b) < eps)
            return 0;
        if (a - b < 0.0)
            return -1;
        return 1;
    }
}
