#include <bits/stdc++.h>
using namespace std;
const int mxn = 503;
int n, k;
int a[mxn], vis[mxn];
void swp(int x){ swap(a[x], a[x + 1]), swap(vis[x], vis[x + 1]);}
int main(){
	int t;
	cin >> t;
	while(t--){
	    cin >> n >> k;
    	for(int i = 1; i <= n; i++){ char c; cin >> c; a[i] = c - 'a', vis[i] = 0;}
    	a[0] = -1, a[n + 1] = a[n + 2] = k;
    	for(int i = 1; i <= n; i++) if(!vis[i]){
    		vis[i] = 1;
    		if(!vis[i + 1] && a[i + 1] < a[i] && a[i + 1] < a[i - 1]) swp(i--);
    		else if(a[i] == k - 1) a[i] = 0;
    		else if(a[i] < a[i - 1]) swp(i - 1);
    		else if(!vis[i + 1] && ((a[i + 1] && a[i + 2] >= a[i + 1] - 1 && a[i + 1] < a[i]) || (a[i + 1] == k - 1 && a[i] > 1))) swp(i--);
    		else if(a[i]) a[i]--;
    	}
    	for(int i = 1; i <= n; i++) cout << (char)(a[i] + 'a');
    	cout << endl;
	}
	return 0;
}