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"}.
#include <bits/stdc++.h>
using namespace std;
void set(int& n, int first) { n = n | (1 << first); }
void reset(int& n, int first) { n = n & ~(1 << first); }
bool check(int n, int first) { return (bool)(n & (1 << first)); }
const int mx = 100004;
int a[mx];
int main() {
  int n, i, k, j;
  char s[105];
  int a[105], memo[105];
  while (scanf("%d", &k) == 1) {
    scanf("%s", s);
    n = strlen(s);
    memset(a, 0, sizeof a);
    memset(memo, 0, sizeof memo);
    int cnt = 0;
    for (i = 0; i < n; i++) {
      if (memo[s[i] - 'a']) continue;
      cnt++;
      memo[s[i] - 'a'] = 1;
      a[i] = 1;
      if (cnt == k) break;
    }
    if (cnt < k)
      printf("NO\n");
    else {
      printf("YES\n");
      for (i = 0; i < n; i++) {
        if (i > 0 && a[i] == 1) puts("");
        printf("%c", s[i]);
      }
      puts("");
    }
  }
}
