#include<bits/stdc++.h>
#define N 100005
#define M 100005
#define int long long
using namespace std;
int n,k,mai,mii,f;
string s;
char mac=0,mic=0;
map<char,int>tc;
int checkmax(int sl)
{
mac=0;
for(int i=0;i<sl;i++)
{
if(mai<=tc[s[i]])
{
mac=s[i];
mai=tc[s[i]];
}
}
return mai;
}
int checkmin(int sl)
{
mic=0;
for(int i=0;i<sl;i++)
{
if(mii<=tc[s[i]])
{
mic=s[i];
mii=tc[s[i]];
}
}
return mii;
}
signed main()
{
cin>>n>>k>>s;
int l=s.size();
for(int i=0;i<l;i++)
{
tc[s[i]]++;
}
for(int i=0;i<l;i++)
{
f=0;
for(int j=0;j<26;j++)
{
if(tc[s[i]]!=0)
{
tc[s[i]]--;
if(checkmax(l)-checkmin(l)<=k)
{
s[i]=j+'a';
f=1;
break;
}
}
if(f==0){cout<<-1<<endl;break;}
}
if(f==0)break;
}
if(f==1)cout<<s<<endl;
return 0;
}
暂时写了一个样例的代码~