#include<bits/stdc++.h>
#define N 1000010 
#define inf 0x3f3f3f3f
using namespace std;
typedef long long ll;
const ll mod=1e9+7;
int T,n,k,re;
char s[N],ans[N];
int cnt[30],nd[30];
ll check()
{
	ll num=re;
	for(int i=0;i<30;++i) nd[i]=0;
	for(int i=0;i<30;++i)
	{
		if(cnt[i]%k){
			num-=k-(cnt[i]%k);
			nd[i]=k-(cnt[i]%k);
		}
	}
	return num;
}
int main()
{
//	T=1;
	scanf("%d",&T);
	while(T--)
	{
		for(int i=0;i<30;++i) cnt[i]=0;
		scanf("%d%d",&n,&k);
		scanf("%s",s+1);
		if(n%k!=0){
			printf("-1\n");
			continue;
		}
		for(int i=1;i<=n;++i) cnt[s[i]-'a']++;
		bool flag=0;
		for(int i=0;i<30;++i){
			if(cnt[i]%k){
				flag=1;
			}
		}
		if(!flag){
			printf("%s\n",s+1);
			continue;
		}
		re=0;
		flag=0;
		for(int i=n;i>=1&&!flag;--i)
		{
			cnt[s[i]-'a']--;
			for(int j=s[i]-'a'+1;j<='z'-'a'&&!flag;++j)
			{
				cnt[j]++;
				ll res=check();
//				cout<<i<<" "<<j<<" "<<res<<"...\n";
				if(res>=0){
					for(int l=1;l<=i-1;++l) ans[l]=s[l];
					ans[i]=(char)(j+'a');
					for(int l=i+1;l<=n;++l)
					{
						if(res>0){
							ans[l]='a';
							res--;
							continue;
						}
						for(int tt=0;tt<30;++tt){
							if(nd[tt]>0){
								ans[l]=(char)(tt+'a');
								nd[tt]--;
								break;
							}
						}
					}
					flag=1;
				}
				cnt[j]--;
			}	
			re++;
		}
//		for(int i=0;i<30;++i) cout<<nd[i]<<"....\n";
		ans[n+1]='\0';
		printf("%s\n",ans+1);
	}
	return 0;
}
//10