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.math.BigInteger;
import java.util.ArrayList;
import java.util.*;

/**
 * Created by yujiahao on 5/10/16.
 */
public class cf_302_a {
    private FastScanner in;
    private PrintWriter out;

    public void solve() throws IOException {
        int k = in.nextInt();
        String ss = in.next();
        char[] s = ss.toCharArray();
        int[] count = new int[26];
        int[] res = new int[k];
        int num = 0;
        int j=0;

        for (int i=0; i<s.length; i++){
            if (count[s[i]-'a']==0){
                count[s[i]-'a']=1;
                res[Math.min(j++, k-1)] = i;
                num++;
            }
            if (num==k) break;
        }

        if (num<k){
            out.print("NO");
            return;
        }

        out.print("YES"+ "\n");
        StringBuilder sb = new StringBuilder();

        for (int i=0; i<k-1; i++){
            sb.append(ss.substring(res[i], res[i+1])+"\n");
        }
        sb.append(ss.substring(res[k-1]));

        out.print(sb.toString());
    }


    public void run() {
        try {
            in = new FastScanner();
            out = new PrintWriter(System.out);
            solve();
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private class FastScanner {
        private BufferedReader br;
        private StringTokenizer st;

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

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

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

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

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

        public BigInteger nextBigInteger() { return new BigInteger(next());}

    }

    public static void main(String[] arg) {
        new cf_302_a().run();
    }
}
