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

public class Set_of_Strings {
    public static void main(String[] args) throws NumberFormatException,
            IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(bf.readLine());
        String q = bf.readLine();
        ArrayList dc = new ArrayList();
        ArrayList ses = new ArrayList();
        String temp = q.charAt(0) + "";
        dc.add(q.charAt(0));
        boolean flag = false;
        int count = 0;

        for (int c = 1; c < q.length(); c++) {
            if (count == n - 1) {
                temp = temp + q.substring(c);
                ses.add(temp);
                flag = true;
                count++;
                break;
            } else {
                if (dc.contains(q.charAt(c))) {
                    temp = temp + q.charAt(c);
                } else {

                    ses.add(temp);
                    dc.add(q.charAt(c));
                    temp = q.charAt(c) + "";
                    count++;

                }
            }
        }
        if (count == n - 1) {;
            ses.add(temp);
            flag = true;
            count++;
        }
        if (q.length() == 1) {
            if (n == 1) {
                System.out.println("YES");
                System.out.println(q.charAt(0));
            } else
                System.out.println("NO");

        } else {
            if(dc.contains(temp.charAt(0))){
                
            }
            if (flag == false) {
                System.out.println("NO");
            } else {
                System.out.println("YES");
                for (int c = 0; c < ses.size(); c++) {
                    System.out.println(ses.get(c));
                }
            }
        }

    }
}
