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

const int N=2e5+5;

inline int read()
{
	int x=0,f=1;
	char c=getchar();
	while(c<'0'||c>'9')
	{
	    if(c=='-')
	        f=-1;
	    c=getchar();
	}
	while(c>='0'&&c<='9')
	{
	    x=x*10+c-'0';
	    c=getchar();
	}
	return x*f;
}

int n;
inline int Work(string s)
{
	int k1=0,k2=0;
	for(int i=0;i<2*n;i++)
	{
		if(s[i]=='0') k1++;
		else k2++;
	}
	if(k1>=k2) return 0;
	return 1;
}

int re[N];
inline int ask1(string s,int place)
{
	int ans=0;
	while(place<2*n && s[place]=='1')
		ans++, place++;
	return ans;
}
inline void Work1(string s1,string s2)
{
	int k1=0,k2=0;
	for(int i=0;i<2*n;i++)
	{
		if(s1[i]=='0') k1++;
		if(s2[i]=='0') k2++;
	}
	if(k1<k2) swap(s1,s2);
	int len=0;
	re[len]=ask1(s2,0);
	for(int i=0;i<2*n;i++)
		if(s2[i]=='0') 
			re[++len]=ask1(s2,i+1);
	string ans="";
	int now=0;
	for(int i=1;i<=re[0];i++) ans+='1';
	for(int i=0;i<2*n;i++)
	{
		ans+=s1[i];
		if(s1[i]=='0') 
		{
			now++;
			for(int j=1;j<=re[now];j++) ans+='1';
		}
	}
	cout<<ans<<endl;
	for(int i=1;i<=len;i++) re[i]=0;
}
inline int ask2(string s,int place)
{
	int ans=0;
	while(place<2*n && s[place]=='0')
		ans++, place++;
	return ans;
}
inline void Work2(string s1,string s2)
{
	int k1=0,k2=0;
	for(int i=0;i<2*n;i++)
	{
		if(s1[i]=='1') k1++;
		if(s2[i]=='1') k2++;
	}
	if(k1<k2) swap(s1,s2);
	int len=0;
	re[len]=ask2(s2,0);
	for(int i=0;i<2*n;i++)
		if(s2[i]=='1') 
			re[++len]=ask2(s2,i+1);
	string ans="";
	int now=0;
	for(int i=1;i<=re[0];i++) ans+='0';
	for(int i=0;i<2*n;i++)
	{
		ans+=s1[i];
		if(s1[i]=='1') 
		{
			now++;
			for(int j=1;j<=re[now];j++) ans+='0';
		}
	}
	cout<<ans<<endl;
	for(int i=1;i<=len;i++) re[i]=0;
}

inline void P(string k1,string k2,int id)
{
	if(id==0) Work1(k1,k2);
	else Work2(k1,k2); 
}

string s1,s2,s3;
int main()
{
	int T=read();
	while(T--)
	{
		n=read();
		cin>>s1>>s2>>s3;
		int t1=Work(s1),t2=Work(s2),t3=Work(s3);
		if(t1==t2) P(s1,s2,t1);
		else if(t1==t3) P(s1,s3,t1);
		else if(t2==t3) P(s2,s3,t2);
	}
    return 0;
}