F - Set of Strings

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<iostream>

#include<string>
#include<cstring>
#include<map>
#include<queue>
using namespace std;
map<char,int >wakaka;
int a[1010];
int main()
{
    int n;
    cin>>n;
    memset(a,0,sizeof(a));
    string s;
    cin>>s;
    int len=s.size();
    if(len<n)
    {
        cout<<"NO"<<endl;
    }
    else
    {
        a[0]=0;
        int ans=0;
        for(int i=0; i<len; i++)
        {
            if(wakaka[s[i]]==0)
            {
                ans++;
                a[ans]=i;
            }
            wakaka[s[i]]++;
        }
        if(ans>=n)
        {
            cout<<"YES"<<endl;
            for(int i=1; i<=ans; i++)
            {
                if(i==n)
                {
                    for(int j=a[i]; j<len; j++)
                    {
                        cout<<s[j];
                    }
                    break;
                }
                for(int j=a[i]; j<a[i+1]; j++)
                {
                    cout<<s[j];
                }
                cout<<endl;
            }
        }
        else
        {
            cout<<"NO"<<endl;
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/Let_life_stop/article/details/81053223