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

@SuppressWarnings("unchecked")
public class P544A {
  
  public void run() throws Exception {
    int k = nextInt();
    String q = next();
    boolean [] u = new boolean ['z' - 'a' + 1];
    ArrayList<Integer> x = new ArrayList();

    for (int i = 0; i < q.length(); i++) {
      if (!u[q.charAt(i) - 'a']) {
        u[q.charAt(i) - 'a'] = true;
        x.add(i);
        if (x.size() == k) {
          x.add(q.length());
        }
      }
    }

    if (x.size() < k) {
      println("NO");
    } else {
      println("YES");
      for (int i = 0; i < k; i++) {
        println(q.substring(x.get(i), x.get(i + 1)));
      }
    }
  }

  // ---------------------------------------------------------------------------------------------
  public static void main(String... args) {
    try {
      new P544A().run();
    } catch (Exception e) {
      System.err.println(e);
    } finally {                                          
      pw.close();
    }
  }

  final static String  inFile = null;
  final static String outFile = null;
  static InputStream  is = null;
  static OutputStream os = null;
  static {
    try {
      is = (( inFile == null) ? System.in  : new FileInputStream(  inFile));
      os = ((outFile == null) ? System.out : new FileOutputStream(outFile));
    } catch (Exception e) {
      System.err.println(e);
    }
  }
  final static BufferedReader br = new BufferedReader(new InputStreamReader(is));
  final static PrintWriter    pw = new PrintWriter(   new BufferedOutputStream(os));


  static StringTokenizer strTok = null;
  static String token() throws IOException {
    while ((strTok == null) || (!strTok.hasMoreTokens())) {
      strTok = new StringTokenizer(br.readLine());
    }
    return (strTok.nextToken());
  }

  void print(  char c) { print(c + ""); }
  void print(  long l) { print(l + ""); }
  void print(double d) { print(d + ""); }
  void print(Object o) { print(o + ""); }

  void printsp(  char c) { print(c + " "); }
  void printsp(  long l) { print(l + " "); }
  void printsp(double d) { print(d + " "); }
  void printsp(Object o) { print(o + " "); }
  void printsp(String s) { print(s + " "); }

  void println(  char c) { print(c + "\n"); }
  void println(  long l) { print(l + "\n"); }
  void println(double d) { print(d + "\n"); }
  void println(Object o) { print(o + "\n"); }
  void println(String s) { print(s + "\n"); }

  void println() { pw.println(); }
  void print(String s) { pw.print(s); }

  int    nextInt()    throws Exception { return Integer.valueOf(token()); }
  long   nextLong()   throws Exception { return Long.valueOf(token());    }
  double nextDouble() throws Exception { return Double.valueOf(token());  }
  String next()       throws Exception { return token();                  }
  String nextLine()   throws Exception { return br.readLine();            }

  int [] nextInt(int size) throws Exception {
    int [] arr = new int [size]; for (int i = 0; i < size; i++) arr[i] = nextInt(); return arr;
  }
  long [] nextLong(int size) throws Exception {
    long [] arr = new long [size]; for (int i = 0; i < size; i++) arr[i] = nextLong(); return arr;
  }
  double [] nextDouble(int size) throws Exception {
    double [] arr = new double [size]; for (int i = 0; i < size; i++) arr[i] = nextDouble(); return arr;
  }
  String [] next(int size) throws Exception {
    String [] arr = new String [size]; for (int i = 0; i < size; i++) arr[i] = next(); return arr;
  }
  String [] nextLines(int size) throws Exception {
    String [] arr = new String [size]; for (int i = 0; i < size; i++) arr[i] = nextLine(); return arr;
  }
}