#include<bits/stdc++.h>
using namespace std;
int ttt,n,k,t[27];
bool v[27];
string s,ans;
bool c()
{
int mx = -1,mn = 1e9;
for (int i=0;i<26;i++)
{
if (v[i])
{
mx = max(mx,t[i]);
mn = min(mn,t[i]);
}
}
return mx - mn <= k;
}//检查函数
int main()
{
cin >> ttt;
while (ttt--)
{
cin >> n >> k >> s;
memset(v,0,sizeof(v));
memset(t,0,sizeof(v));
for (int i=0;i<n;i++)
{
v[s[i]-'a'] = 1;
t[s[i]-'a']++;
}
ans = "";
if (!c())
{
cout << -1 << endl;
continue;
}//特判
for (int i=0;i<n;i++)
{
for (int j=0;j<26;j++)
{
if (v[j])
{
t[j]--;
if (c())
{
ans += 'a' + j;
break;//下一轮
}
else
{
t[j]++;//回溯
}
}
}
}
if (ans.size()!=s.size())
{
cout << -1 << endl;
}
else
{
cout << s << endl;
}
}
return 0;
}
1 个赞