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.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {

    public static void main(String[] args) {
        /*
         * Enter your code here. Read input from STDIN. Print output to STDOUT.
         * Your class should be named Solution.
         */
        InputReader sc = new InputReader(System.in);
        int k = sc.nextInt();
        ArrayList<String> x = new ArrayList<String>();
        String str = sc.next();
        if (k > str.length())
            System.out.println("NO");
        else {
            if (k == 1)
                System.out.println("YES\n" + str);
            else {
                int start = 0;
                int fin = 0;
                StringBuilder ss = new StringBuilder();
                ss.append(str.charAt(0));
                for (int i = 1; i < str.length()&&fin<str.length(); i++) {
                    if (ss.indexOf(str.charAt(i) + "") == -1) {
                        fin++;//i 5
                        
                        ss.append(str.charAt(i));
                        x.add(str.substring(start, fin));
                        start = fin;
                        

                    } else
                        fin++;//4

                }
                if(start<str.length())
                    x.add(str.substring(start));
               
                
                if (x.size() < k)
                    System.out.println("NO");
                else {
                    System.out.println("YES");
                    for (int i = 0; i < k; i++) {
                        if(i!=k-1)System.out.println(x.get(i));
                        else System.out.print(x.get(i));
                    }
                    for (int i = k; i < x.size(); i++) {
                        System.out.print(x.get(i));

                    }
                }

            }

        }

    }
}

class InputReader {
    private BufferedReader reader;
    private StringTokenizer tokenizer;

    public InputReader(InputStream stream) {
        reader = new BufferedReader(new InputStreamReader(stream), 32768);
        tokenizer = null;
    }

    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 String readLine() {
        try {
            return reader.readLine();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

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

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

    public char nextChar() {
        return next().charAt(0);
    }

}