#include<bits/stdc++.h>
using namespace std;
int T,a,b,n;
char s[400002];
int main(){
for(scanf("%d",&T);T--;){
scanf("%d%d%s",&a,&b,s+1);
n=a+b;
for(int i=1;i<=n;++i){
if(s[i]=='?'&&s[n-i+1]!='?')
s[i]=s[n-i+1];
if(s[i]=='0')--a;
else if(s[i]=='1')--b;
}
for(int i=1;i<=n;++i){
if(s[i]!=s[n-i+1]){
a=1;
break;
}
if(s[i]=='?'){
if(a){
s[i]=s[n-i+1]='0';
--a;
if(i!=n-i+1)--a;
}
else if(b){
s[i]=s[n-i+1]='1';
--b;
if(i!=n-i+1)--b;
}
}
}
puts(a|b?"-1":s+1);
}
return 0;
}
