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

typedef unsigned long long ull;
typedef long long ll;
typedef long double ld;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;

#define fastio() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#define test() int t;cin>>t;for(int test=1;test<=t;test++)
#define pb push_back
#define nl cout<<"\n"
#define F first
#define S second
#define all(x) x.begin(),x.end()

template<class C> void min_self( C &a, C b ){ a = min(a,b); }
template<class C> void max_self( C &a, C b ){ a = max(a,b); }

const ll MOD = 1000000007;
ll mod( ll n, ll m=MOD ){ n%=m;if(n<0)n+=m;return n; }

const int MAXN = 2e5+5;
const int LOGN = 21;
const ll INF = 1e14;
int dx[] = {1,0,-1,0};
int dy[] = {0,1,0,-1};

template<class T1, class T2> void add( T1 &x, T2 y, ll m = MOD )
{
    x += y;
    if( x >= m )
        x -= m;
}

template<class T1, class T2> void sub( T1 &x, T2 y, ll m = MOD )
{
    x -= y;
    if( x < 0 )
        x += m;
}

void solve()
{
    int n; cin>>n;
    string s[3];
    int zeros[3] = {};

    for(int i=0; i<3; i++)
    {
        cin>>s[i];
        for(auto j: s[i])
        {
            if(j == '0')
                zeros[i]++;
        }
    }

    int i,j;

    if((zeros[0] <= n && zeros[1] <= n) || (zeros[0] >= n && zeros[1] >= n))
        i = 0, j = 1;
    else if((zeros[0] <= n && zeros[2] <= n) || (zeros[0] >= n && zeros[2] >= n))
        i = 0, j = 2;
    else
        i = 1, j = 2;

    if(zeros[i] > zeros[j])
        swap(i,j);

    if(zeros[i] <= n && zeros[j] <= n)
    {
        string ans = "";
        int ii = 0, jj = 0;
        while(ii < (2*n) && jj < (2*n))
        {
            if(s[i][ii] == s[j][jj])
            {
                ans += s[i][ii];
                ii++; jj++;
            }
            else
            {
                ans += '0';
                if(s[i][ii] == '0')
                    ii++;
                else
                    jj++;
            }
        }
        while(ii < (2*n))
        {
            ans += s[i][ii];
            ii++;
        }
        while(jj < (2*n))
        {
            ans += s[j][jj];
            jj++;
        }
        cout<<ans,nl;
    }
    else
    {
        string ans = "";
        int ii = 0, jj = 0;
        while(ii < (2*n) && jj < (2*n))
        {
            if(s[i][ii] == s[j][jj])
            {
                ans += s[i][ii];
                ii++; jj++;
            }
            else
            {
                ans += '1';
                if(s[i][ii] == '1')
                    ii++;
                else
                    jj++;
            }
        }
        while(ii < (2*n))
        {
            ans += s[i][ii];
            ii++;
        }
        while(jj < (2*n))
        {
            ans += s[j][jj];
            jj++;
        }
        cout<<ans,nl;
    }
}

int main() 
{
    fastio();
    #ifndef ONLINE_JUDGE
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    #endif

    test()
    {
        solve();
    }

    

    cerr << "\nTime elapsed: " << 1000 * clock() / CLOCKS_PER_SEC << "ms\n";
    return 0;
}

