#include <bits/stdc++.h>
#define forr(i,a,b) for(int i=(a);i<(b);i++)
#define forn(i,n) forr(i,0,n)
#define dforn(i,n) for(int i=n-1;i>=0;i--)
#define forall(it,v) for(auto it=v.begin();it!=v.end();it++)
#define sz(c) ((int)c.size())
#define rsz resize
#define pb push_back
#define mp make_pair
#define lb lower_bound
#define ub upper_bound
#define fst first
#define snd second

#ifdef ANARAP
#else
#endif

using namespace std;

typedef long long ll;
typedef pair<int,int> ii;

int main()
{
	#ifdef ANARAP
		freopen("input.in", "r", stdin);
		//freopen("output.out", "w", stdout);
	#endif
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	int t;
	cin >> t;
	forn(T,t)
	{
		int n,vpos[3] = {0,0,0};
		string vs[3];
		cin >> n;
		forn(i,3) cin >> vs[i];
		string ans = "";
		while(vpos[0] < 2*n && vpos[1] < 2*n && vpos[2] < 2*n)
		{
			int a,b = -1;
			forn(i,3)forr(j,i+1,3)if(vs[i][vpos[i]] == vs[j][vpos[j]]) a=i, b=j;
			assert(b != -1);
			ans.pb(vs[a][vpos[a]]);
			vpos[a]++;
			vpos[b]++;
		}
		if((vpos[0] < 2*n) + (vpos[1] < 2*n) + (vpos[2] < 2*n) > 1)
		{
			int aux = -1;
			forn(i,3) if(vpos[i] < 2*n && (aux == -1 || vpos[i] > vpos[aux])) aux = i;
			assert(aux != -1);
			while(vpos[aux] < 2*n) ans.pb(vs[aux][vpos[aux]++]);
		}
		assert(sz(ans) <= 3*n);
		cout << ans << '\n';
	}
	return 0;
}
