#include #include #include #include #include using namespace std; char s[1010],res[1010]; int dp[510][3][1010]; int main() { int t,n,m; cin>>t; while(t--){ cin>>n>>m; scanf("%s",s+1); memset(dp,0,sizeof dp); int l=strlen(s+1); dp[l/2+1][0][0]=1; for(int i=l/2;i>=1;i--){ for(int j=0;j<=m;j++){ for(int k=0;k<3;k++){ if(!dp[i+1][k][j]) continue; if(s[i]==s[i+l/2]){ dp[i][0][j]=dp[i][1][j]=1; dp[i][2][j+2]=1; } else{ dp[i][0][j+1]=dp[i][1][j+1]=1; dp[i][2][j+2]=1; } } } } int ans=0; for(int i=0;i<3;i++) if(dp[1][i][m]) ans=1; if(!ans) puts("Impossible"); else{ int tot=0,sta=m; for(int i=1;i<=l/2;i++){ for(char j='a';j<='z';j++){ if(j!=s[i]&&j!=s[i+l/2]){ if(dp[i][2][sta]){ res[tot++]=j; sta-=2; break; } } else if(j!=s[i]){ if(j==s[i+l/2]&&dp[i][0][sta]){ res[tot++]=j; sta-=1; break; } } else if(j!=s[i+l/2]){ if(j==s[i]&&dp[i][1][sta]){ res[tot++]=j; sta-=1; break; } } else{ if(dp[i][0][sta]||dp[i][1][sta]){ res[tot++]=j; break; } } } } //for(int i=0;i