#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define fast ios_base::sync_with_stdio(false);cin.tie(NULL);
int main()
{
fast;
int tc,n,k;
string str;
cin>>tc;
while(tc--){
cin>>n>>k>>str;
int one=0,zero=0;
for(int i=0;i<str.length();i++){
if(str[i]=='0')
zero++;
else if(str[i]=='1')
one++;
}
int temp=n/k;
if(zero%temp!=0 || one%temp!=0){
cout<<"IMPOSSIBLE"<<endl;
continue;
}
zero=zero/temp;
one=one/temp;
int i=0,b=2*k-1;
string ans=str;
while(zero!=0){
ans[i]='0';
ans[b-i]='0';
i++;
zero--;
}
while(one!=0){
ans[i]='1';
ans[b-i]='1';
i++;
one--;
}
b+=k;
int curr=0;
while(b<n){
ans[b-curr]=ans[i];
i++;
curr++;
if(curr==k){
curr=0;
b+=k;
}
}
cout<<ans<<endl;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcgaW50CiNkZWZpbmUgZmFzdCBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTtjaW4udGllKE5VTEwpOwppbnQgbWFpbigpCnsKICAgIGZhc3Q7CiAgICBpbnQgdGMsbixrOwogICAgc3RyaW5nIHN0cjsKICAgIGNpbj4+dGM7CiAgICB3aGlsZSh0Yy0tKXsKICAgICAgICBjaW4+Pm4+Pms+PnN0cjsKICAgICAgICBpbnQgb25lPTAsemVybz0wOwogICAgICAgIGZvcihpbnQgaT0wO2k8c3RyLmxlbmd0aCgpO2krKyl7CiAgICAgICAgICAgIGlmKHN0cltpXT09JzAnKQogICAgICAgICAgICAgICAgemVybysrOwogICAgICAgICAgICBlbHNlIGlmKHN0cltpXT09JzEnKQogICAgICAgICAgICAgICAgb25lKys7CiAgICAgICAgfQogICAgICAgIGludCB0ZW1wPW4vazsKICAgICAgICBpZih6ZXJvJXRlbXAhPTAgfHwgb25lJXRlbXAhPTApewogICAgICAgICAgICBjb3V0PDwiSU1QT1NTSUJMRSI8PGVuZGw7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICB6ZXJvPXplcm8vdGVtcDsKICAgICAgICBvbmU9b25lL3RlbXA7CiAgICAgICAgaW50IGk9MCxiPTIqay0xOwogICAgICAgIHN0cmluZyBhbnM9c3RyOwogICAgICAgIHdoaWxlKHplcm8hPTApewogICAgICAgICAgICBhbnNbaV09JzAnOwogICAgICAgICAgICBhbnNbYi1pXT0nMCc7CiAgICAgICAgICAgIGkrKzsKICAgICAgICAgICAgemVyby0tOwogICAgICAgIH0KICAgICAgICB3aGlsZShvbmUhPTApewogICAgICAgICAgICBhbnNbaV09JzEnOwogICAgICAgICAgICBhbnNbYi1pXT0nMSc7CiAgICAgICAgICAgIGkrKzsKICAgICAgICAgICAgb25lLS07CiAgICAgICAgfQogICAgICAgIGIrPWs7CiAgICAgICAgaW50IGN1cnI9MDsKICAgICAgICB3aGlsZShiPG4pewogICAgICAgICAgICBhbnNbYi1jdXJyXT1hbnNbaV07CiAgICAgICAgICAgIGkrKzsKICAgICAgICAgICAgY3VycisrOwogICAgICAgICAgICBpZihjdXJyPT1rKXsKICAgICAgICAgICAgICAgIGN1cnI9MDsKICAgICAgICAgICAgICAgIGIrPWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY291dDw8YW5zPDxlbmRsOwogICAgfQogICAgcmV0dXJuIDA7Cn0K