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"}.
/*
 * Code Author: Jayesh Udhani
 * Dhirubhai Ambani Institute of Information and Communication Technology (DA-IICT ,Gandhinagar)
 */
import java.io.*;
import java.util.*;

public class Main
{
	private static int countUniqueCharacters(String input) {
		boolean[] isItThere = new boolean[26];
		Arrays.fill(isItThere, false);
		for (int i = 0; i<input.length(); i++) {
			isItThere[((int)input.charAt(i))-97] = true;
		}

		int count = 0;
		for (int i = 0; i < 26; i++) {
			if (isItThere[i] == true){
				count++;
			}
		}
		return count;
	}
	public static void main(String args[])
	{
		InputReader in = new InputReader(System.in);
		OutputStream outputStream = System.out;
		PrintWriter out = new PrintWriter(outputStream);
		//----------My Code Starts Here----------
		int k=in.nextInt();
		String str=in.next();
		int l=str.length();
		if(k>l)
		{
			System.out.println("NO");
			return;
		}
		else if(k==l)
		{
			System.out.println("YES");
			for(int i=0;i<l;i++)
				System.out.println(str.charAt(i));
			return;
		}
		else
		{
			if(countUniqueCharacters(str)<k)
			{
				System.out.println("NO");
				return;
			}
			else
			{
				System.out.println("YES");
				String[] a=new String[k];
			//	Arrays.fill(a, null);
				int i=0;
				a[0]+=str.charAt(0);
				for(int j=0;j<=l-2;j++)
				{
					if(i==k-1)
						a[i]+=str.charAt(j+1);
					else
					{
						if(str.charAt(j)!=str.charAt(j+1))
						{
							int t=i,ctr=0;
							for(;t>=0;t--)
							{
								if(str.charAt(j+1)!=a[t].charAt(4))
									ctr++;
							}
							if(ctr==i+1)
							{
								i++;
							}
						}
						a[i]+=str.charAt(j+1);		
					}
				}
				for(int f=0;f<k;f++)
					System.out.println(a[f].substring(4));
			}
		}
		out.close();
		//---------------The End———————————————————
	}
	static class InputReader {
		public BufferedReader reader;
		public StringTokenizer tokenizer;

		public InputReader(InputStream inputstream) {
			reader = new BufferedReader(new InputStreamReader(inputstream));
			tokenizer = null;
		}

		public String nextLine(){
			String fullLine=null;
			while (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					fullLine=reader.readLine();
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
				return fullLine;
			}
			return fullLine;
		}
		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 long nextLong() {
			return Long.parseLong(next());
		}
		public int nextInt() {
			return Integer.parseInt(next());
		}
	}
}
