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

//template
#define rep(i,a,b) for(int i=(int)(a);i<(int)(b);i++)
#define ALL(v) (v).begin(),(v).end()
using ll=long long int;
const int inf = 0x3fffffff; const ll INF = 0x1fffffffffffffff; const double eps=1e-12;
template<typename T>inline bool chmax(T& a,T b){if(a<b){a=b;return 1;}return 0;}
template<typename T>inline bool chmin(T& a,T b){if(a>b){a=b;return 1;}return 0;}
//end

void solve(int _rot){
   // printf("Case #%d: ",_rot);
   int n;
   cin>>n;
   string s[3];
   rep(i,0,3)cin>>s[i];
   rep(_,0,3){
      string S=s[_],T=s[(_+1)%3];
      string res;

      int S0=0,T0=0;
      rep(i,0,n*2)if(S[i]=='0')S0++;
      rep(i,0,n*2)if(T[i]=='0')T0++;
      if((S0>n) and (T0<n))continue;
      if((S0<n) and (T0>n))continue;
      char mx;
      if(S0>=n and T0>=n)mx='0';
      if(S0<=n and T0<=n)mx='1';

      int i1=0,i2=0;
      for(;;){
         int c1=0,c2=0;
         while(i1<n*2 and S[i1]!=mx){
            i1++; c1++;
         }
         while(i2<n*2 and T[i2]!=mx){
            i2++; c2++;
         }
         res+=string(max(c1,c2),mx^'0'^'1');
         res+=mx;
         i1=min(i1+1,n*2);
         i2=min(i2+1,n*2);
         if(i1==n*2 and i2==n*2)break;
      }
      while(res.size()>n*3)res.pop_back();
      while(res.size()<n*3)res+='0';
      cout<<res<<'\n';
      return;
   }
}

int main(){
   int t; scanf("%d",&t);
   rep(rot,0,t)solve(rot+1);
   return 0;
}