/*
    Username : moondancer
    Name : Moon Dancer
*/


#include <bits/stdc++.h>
using namespace std;

#define int long long

signed main(){
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int t;
    cin >> t;
    while(t--) {
        int a, b;
        cin >> a >> b;
        string s;
        cin >> s;
        int n = a + b;
        for (int i = 0; i < n; ++i) {
            if(s[i] == '0') {
                a--;
            }
            else if(s[i] == '1') {
                b--;
            }
        }
        if(a < 0 || b < 0) {
            cout << "-1\n";
            continue;
        }
        int i = 0, j = n-1;
        bool f = 1;
        while(i <= j) {
            if(i == j) {
                // if(s[i] == '?') {
                //     if(a >= 1) {
                //         s[i] = '0';
                //         a--;
                //     }
                //     else if(b >= 1) {
                //         s[i] = '1';
                //         b--;
                //     }
                // }
            }
            else {
                if(s[i] == s[j]) {
                    // if(s[i] == '?') {
                        // if(a >= 2) {
                        //     s[i] = s[j] = '0';
                        //     a -= 2;
                        // }
                        // else if(b >= 2) {
                        //     s[i] = s[j] = '1';
                        //     b -= 2;
                        // }
                        // else {
                        //     f = 0;
                        //     break;
                        // }
                    // }
                }
                else if(s[i] != '?' && s[j] != '?') {
                    f = 0;
                    break;
                }
                else if(s[i] == '?') {
                    if(s[j] == '0') {
                        if(a >= 1) {
                            s[i] = '0';
                            a--;
                        }
                        else {
                            f = 0;
                            break;
                        }
                    }
                    else if(s[j] == '1') {
                        if(b >= 1) {
                            s[i] = '1';
                            b--;
                        }
                        else {
                            f = 0;
                            break;
                        }
                    }
                }
                else if(s[j] == '?') {
                    if(s[i] == '0') {
                        if(a >= 1) {
                            s[j] = '0';
                            a--;
                        }
                        else {
                            f = 0;
                            break;
                        }
                    }
                    else if(s[i] == '1') {
                        if(b >= 1) {
                            s[j] = '1';
                            b--;
                        }
                        else {
                            f = 0;
                            break;
                        }
                    }
                }
            }
            i++; j--;
        }
        i = 0;
        j = n - 1;
        while(i <= j) {
            if(i == j) {
                if(s[i] == '?') {
                    if(a >= 1) {
                        s[i] = '0';
                        a--;
                    }
                    else if(b >= 1) {
                        s[i] = '1';
                        b--;
                    }
                }
            }
            else {
                if(s[i] == s[j]) {
                    if(s[i] == '?') {
                        if(a >= 2) {
                            s[i] = s[j] = '0';
                            a -= 2;
                        }
                        else if(b >= 2) {
                            s[i] = s[j] = '1';
                            b -= 2;
                        }
                        else {
                            f = 0;
                            break;
                        }
                    }
                }
            }
            i++; j--;
        }
        if(f && a>=0 && b >= 0) {
            cout << s << "\n";
        }
        else {
            cout << "-1\n";
        }
    }
    return 0;
}