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;
const int maxn = 1e6 + 10;
int getint() {
  int t = 0, flag = 1;
  char c = getchar();
  while (c < '0' || c > '9' || c == '-') {
    if (c == '-') flag = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') t = t * 10 + c - '0', c = getchar();
  return t * flag;
}
int GCD(int m, int n) { return !m ? n : GCD(n % m, m); }
template <typename T>
string to_string(T value) {
  ostringstream os;
  os << value;
  return os.str();
}
long long MultMod(long long a, long long b, long long MOD) {
  a %= MOD;
  b %= MOD;
  long long ret = 0;
  while (b) {
    if (b & 1) {
      ret += a;
      if (ret >= MOD) ret -= MOD;
    }
    a = a << 1;
    if (a >= MOD) a -= MOD;
    b = b >> 1;
  }
  return ret;
}
int n, t, m;
pair<int, int> a[26];
int main() {
  int k;
  string str;
  while (cin >> k >> str) {
    char lastc = 'a' - 1;
    int n = str.size();
    for (int i = 0; i < 26; i++) a[i].first = -1;
    for (int i = 0; i < n; i++) {
      char e = str[i];
      if (a[e - 'a'].first == -1) {
        if ('a' <= lastc && lastc <= 'z') a[lastc - 'a'].second = i - 1;
        a[e - 'a'].first = i;
        lastc = e;
      }
    }
    a[lastc - 'a'].second = n - 1;
    int cnt = 0;
    vector<pair<int, int>> ans;
    for (auto e : a) {
      if (e.first != -1) cnt++, ans.push_back(e);
    }
    sort(ans.begin(), ans.end());
    if (cnt >= k) {
      puts("YES");
      for (int i = 0; i < k - 1; i++)
        cout << str.substr(ans[i].first, ans[i].second - ans[i].first + 1)
             << endl;
      cout << str.substr(ans[k - 1].first) << endl;
    } else
      puts("NO");
  }
  return 0;
}
