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.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class A218 {

    public static void main(String[] args) throws IOException {
        new A218().solve();
        //System.out.println(gcd(120l, 75l));
        // System.out.println((int)logOfBase(1, 1));
    }

    public static Long[] getLongArray(String line) {
        String s[] = line.split(" ");
        Long a[] = new Long[s.length];
        for (int i = 0; i < s.length; ++i) {
            a[i] = Long.parseLong(s[i]);
        }
        return a;
    }

    public static int[] getIntArray(String line) {
        String s[] = line.split(" ");
        int a[] = new int[s.length];
        for (int i = 0; i < s.length; ++i) {
            a[i] = Integer.parseInt(s[i]);
        }
        return a;
    }

    public static Double[] getDoubleArray(String line) {
        String s[] = line.split(" ");
        Double a[] = new Double[s.length];
        for (int i = 0; i < s.length; ++i) {
            a[i] = Double.parseDouble(s[i]);
        }
        return a;
    }

    public void solve() throws IOException {

        Scanner sc = new Scanner(System.in);
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        PrintWriter pw = new PrintWriter(System.out);
        long mod = 1000000000 + 7;

        int n = Integer.parseInt(br.readLine());
        char a[] = br.readLine().toCharArray();
        Set set = new HashSet();
        StringBuilder sb = new StringBuilder();
        String s = a[0] + "";
        set.add(a[0]);
        int j = 0;
        for (int i = 1; i < a.length; i++) {
            if (j + 1 == n) {
                s += a[i];
                continue;
            }
            if (!set.contains(a[i])) {
                sb.append(s + "\n");
                s = "" + a[i];
                j++;
                set.add(a[i]);
            } else {
                s += a[i] + "";
            }
        }
        sb.append(s);
        //System.out.println(sb.toString());
        if (j+1 == n) {
            System.out.println("YES");
            System.out.println(sb.toString());
        } else {
            System.out.println("NO");
        }


    }
}
