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"}.
//package _302.A;

import java.util.HashSet;
import java.util.Scanner;

/**
 * 
 * @author HASHIM
 * @see <a href="cse.hashim.hossam@gmail.com">cse.hashim.hossam@gmail.com</a>
 *
 */
public class Main {
	static String Y = "YES";
	static String N = "NO";

	public static void main(String[] args) {
		HashSet<Character> hs = new HashSet<>();
		// System.out.println(run(new Scanner(System.in)));
		Scanner sc = new Scanner(System.in);
		int k = sc.nextInt();
		String q = sc.next();
		if (k < 1 || k > 26)
			return;
		if (q.length() < 1 || q.length() > 100)
			return;
		if (k == 1) {
			System.out.println(Y);
			System.out.println(q);
			return;
		}
		String result = "";
		int count = 0;
		if (k <= q.length()) {
			for (int i = 0; i < k; i++) {
				if (count == k - 1) {
					result += q + "\n";
					count++;
				} else {
					for (int j = 1; j < q.length(); j++) {
						char strt = q.charAt(0);
						if (!hs.contains(strt)) {
							hs.add(strt);
						}
						// } else {
						// continue;
						// }
						// if (strt != q.charAt(j)) {
						if (!hs.contains(q.charAt(j))) {
							String sub = q.substring(0, j);
							if (sub.length() > 0 && q.length() > 0) {
								result += sub + "\n";
								q = q.substring(j, q.length());
								count++;
								break;
							}
						}

					}
				}
			}
		} else {
			System.out.println(N);
			return;
		}
		if (count == k) {
			// if (!chk(result)) {
			// System.out.println(N);
			// return;
			// }

			System.out.println(Y);
			System.out.println(result);
		} else {
			System.out.println(N);
			return;
		}

	}

	public static boolean chk(String s) {
		HashSet<Character> hs = new HashSet<>();
		Scanner sc = new Scanner(s);
		while (sc.hasNext()) {
			char c = sc.next().charAt(0);
			if (!hs.contains(c)) {
				hs.add(c);
			} else {
				return false;
			}
		}
		return true;
	}
}