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.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Random;
import java.util.StringTokenizer;

public class Main {

	static int MOD = 1000 * 1000 * 1000 + 7;

	public static void shuffleArray(int[] arr) {
		int n = arr.length;
		Random rnd = new Random();
		for (int i = 0; i < n; ++i) {
			int tmp = arr[i];
			int randomPos = i + rnd.nextInt(n - i);
			arr[i] = arr[randomPos];
			arr[randomPos] = tmp;
		}
	}

	public static void main(String[] args) {
		InputStream inputStream = System.in;
		OutputStream outputStream = System.out;
		InputReader in = new InputReader(inputStream);
		PrintWriter out = new PrintWriter(outputStream);
		solve(in, out);
		out.close();
		System.exit(0);
	}

	class Deck implements Comparable<Deck> {
		LinkedList<Integer> list;

		Deck(LinkedList<Integer> o) {
			this.list = new LinkedList<>();
			for (int e : o) {
				this.list.add(e);
			}
		}

		@Override
		public int compareTo(Deck o) {
			if (o.list.size() != list.size()) {
				return Integer.compare(list.size(), o.list.size());
			}
			Iterator<Integer> it = list.iterator();
			Iterator<Integer> it2 = o.list.iterator();
			while (it.hasNext()) {
				int e = it.next();
				int e2 = it2.next();
				if (e < e2) {
					return -1;
				}
				if (e > e2) {
					return 1;
				}
			}
			return 0;
		}

	}

	static class Pair {
		int x;
		int y;

		Pair(int x, int y) {
			this.x = x;
			this.y = y;
		}
	}

	private static void solve(InputReader in, PrintWriter out) {

		int k = in.nextInt();
		String q = in.next();
		boolean[] used = new boolean[26];
		ArrayList<Integer> idx = new ArrayList<Integer>();

		for (int i = 0; i < q.length() && idx.size() < k; i++) {
			if (!used[q.charAt(i) - 'a']) {
				used[q.charAt(i) - 'a'] = true;
				idx.add(i);
			}
		}
		if (idx.size() != k) {
			out.print("NO");
			return;
		}
		out.println("YES");
		for (int i = 0; i < k; i++) {
			out.println(q.substring(idx.get(i), i == k - 1 ? q.length() : idx.get(i + 1)));
		}

	}

	/*
	 * 
	 */
	// --------------------------------------------------------
	static class InputReader {
		public BufferedReader reader;
		public 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 int nextInt() {
			return Integer.parseInt(next());
		}

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

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

		public String nextLine() {
			String str = "";
			try {
				str = reader.readLine();
			} catch (IOException e) {
				e.printStackTrace();
			}

			return str;
		}
	}

}