/*
*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
* 
* @author: Xingjian Bai 
* @date: 2021-04-16 15:34:41
* @description: 
*  
* 
* @notes: 
* g++ -fsanitize=address -ftrapv 
*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
#include <bits/stdc++.h>
#define F first
#define S second
#define MP make_pair
#define TIME (double)clock()/CLOCKS_PER_SEC
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair <int, int> pii;
const int mod = 1000000007; 
const ll oo = 1e18;
const ld eps = 1e-8;
#define debug(x) cerr << "(debug mod) " << #x << " = " << x << endl

int n;
string s[3];

string check (const string &a, const string &b) {
	int cnta[2] = {0, 0};
	for (int i = 0; i < a.size(); i ++)
		cnta[a[i] - '0'] ++;
	int cntb[2] = {0, 0};
	for (int i = 0; i < a.size(); i ++)
		cntb[b[i] - '0'] ++;
	if (min (cnta[0], cntb[0]) >= n) {
		string res = "";
		int pt = 0;
		for (int i = 0; i < a.size(); i ++) {
			if (a[i] == '1')
				res += a[i];
			else {
				while (pt < b.size() && b[pt] == '1') {
					res += '1';
					pt ++;
				}
				if (pt < b.size())
					pt ++;
				res += '0';
			}
		}
		while (pt < b.size()) {
			res += b[pt];
			pt ++;
		}
		return res;
	}
	if (min (cnta[1], cntb[1]) >= n) {
		string res = "";
		int pt = 0;
		for (int i = 0; i < a.size(); i ++) {
			if (a[i] == '0')
				res += a[i];
			else {
				while (pt < b.size() && b[pt] == '0') {
					res += '0';
					pt ++;
				}
				if (pt < b.size())
					pt ++;
				res += '1';
			}
		}
		while (pt < b.size()) {
			res += b[pt];
			pt ++;
		}
		return res;
	}
	return "";
}

int main() {
    ios::sync_with_stdio(false);
    int t;
    cin >> t;
    while (t --) {
    	cin >> n;
    	cin >> s[0] >> s[1] >> s[2];
    	bool ok = false;
    	for (int i = 0; i < 3 && !ok; i ++)
    		for (int j = i + 1; j < 3 && !ok; j ++) {
    			string res = check(s[i], s[j]);
    			if (res != "") {
    				ok = true;
    				cout << res << '\n';
    			}
    		}
    }
    return 0;
}