#include<cstdio>
using namespace std;
int T,A,B;
char S[2<<17];
main()
{
scanf("%d",&T);
for(;T--;)
{
scanf("%d%d%s",&A,&B,S);
int N=A+B;
for(int i=0;i<N;i++)
{
if(S[i]=='0')A--;
if(S[i]=='1')B--;
}
for(int i=0;i<N;i++)if(S[i]=='?')
{
int j=N-i-1;
if(S[j]!='?')
{
if(S[j]=='0')A--;
else B--;
S[i]=S[j];
}
}
if(N%2==1)
{
int mid=N/2;
if(S[mid]=='?')
{
if(A%2==1)A--,S[mid]='0';
else B--,S[mid]='1';
}
}
for(int i=0;i<N;i++)if(S[i]=='?')
{
int j=N-i-1;
if(A>=2)
{
A-=2;
S[i]=S[j]='0';
}
else
{
B-=2;
S[i]=S[j]='1';
}
}
bool ok=A==0&&B==0;
for(int i=0;i<N;i++)if(S[i]!=S[N-i-1])ok=false;
puts(ok?S:"-1");
}
}
I2luY2x1ZGU8Y3N0ZGlvPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgVCxBLEI7CmNoYXIgU1syPDwxN107Cm1haW4oKQp7CglzY2FuZigiJWQiLCZUKTsKCWZvcig7VC0tOykKCXsKCQlzY2FuZigiJWQlZCVzIiwmQSwmQixTKTsKCQlpbnQgTj1BK0I7CgkJZm9yKGludCBpPTA7aTxOO2krKykKCQl7CgkJCWlmKFNbaV09PScwJylBLS07CgkJCWlmKFNbaV09PScxJylCLS07CgkJfQoJCWZvcihpbnQgaT0wO2k8TjtpKyspaWYoU1tpXT09Jz8nKQoJCXsKCQkJaW50IGo9Ti1pLTE7CgkJCWlmKFNbal0hPSc/JykKCQkJewoJCQkJaWYoU1tqXT09JzAnKUEtLTsKCQkJCWVsc2UgQi0tOwoJCQkJU1tpXT1TW2pdOwoJCQl9CgkJfQoJCWlmKE4lMj09MSkKCQl7CgkJCWludCBtaWQ9Ti8yOwoJCQlpZihTW21pZF09PSc/JykKCQkJewoJCQkJaWYoQSUyPT0xKUEtLSxTW21pZF09JzAnOwoJCQkJZWxzZSBCLS0sU1ttaWRdPScxJzsKCQkJfQoJCX0KCQlmb3IoaW50IGk9MDtpPE47aSsrKWlmKFNbaV09PSc/JykKCQl7CgkJCWludCBqPU4taS0xOwoJCQlpZihBPj0yKQoJCQl7CgkJCQlBLT0yOwoJCQkJU1tpXT1TW2pdPScwJzsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCUItPTI7CgkJCQlTW2ldPVNbal09JzEnOwoJCQl9CgkJfQoJCWJvb2wgb2s9QT09MCYmQj09MDsKCQlmb3IoaW50IGk9MDtpPE47aSsrKWlmKFNbaV0hPVNbTi1pLTFdKW9rPWZhbHNlOwoJCXB1dHMob2s/UzoiLTEiKTsKCX0KfQo=