A string is called a k-string if it can be represented as k concatenated copies of some string. For example, the string "aabaabaabaab" is at the same time a 1-string, a 2-string and a 4-string, but it is not a 3-string, a 5-string, or a 6-string and so on. Obviously any string is a 1-string.
You are given a string s, consisting of lowercase English letters and a positive integer k. Your task is to reorder the letters in the strings in such a way that the resulting string is a k-string.
The first input line contains integer k (1 ≤ k ≤ 1000). The second line contains s, all characters in s are lowercase English letters. The string length s satisfies the inequality 1 ≤ |s| ≤ 1000, where |s| is the length of string s.
Rearrange the letters in string s in such a way that the result is a k-string. Print the result on a single output line. If there are multiple solutions, print any of them.
If the solution doesn't exist, print "-1" (without quotes).
2 aazz
azaz
3 abcabcabz
-1
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
bool cmp(char a,char b)
{
return a<b;
}
int main()
{
int k,i,j;
char s[1005],a[1005];
while(~scanf("%d",&k))
{
scanf("%s",s);
int t=strlen(s);
if(t%k!=0)
{
printf("-1\n");
continue;
}
sort(s,s+t,cmp);
int sum=1,flag=0;
for(i=1;i<t;i++)
{
if(s[i]==s[i-1])
sum++;
else
{
if(sum%k!=0)
{ flag=1; break;}
sum=1;
}
}
if(flag==1)
printf("-1\n");
else
{
for(j=0;j<k;j++)
for(i=0;i<t;i+=k)
printf("%c",s[i]);
}
printf("\n");
}
return 0;
}