#include <bits/stdc++.h>
using i64 = long long;
using u64 = unsigned long long;
using u32 = unsigned;
int main() {
#ifdef LOCAL
  freopen("../IO/c.in", "r", stdin);
//  freopen("../IO/c.out", "w", stdout);
#else
  std::ios_base::sync_with_stdio(false);
  std::cin.tie(nullptr);
  std::cout.tie(nullptr);
#endif
  int number_of_tests = 1;
  std::cin >> number_of_tests;
  while (number_of_tests--) {
    int n;std::cin >> n;
    std::vector<std::string> s(3);
    for (auto &S : s) std::cin >> S;
    for (auto &S : s) S.push_back(0);
    std::vector<int> pos(3, 0);
    std::string ans;
    for (int i = 0; i < 3 * n; ++i) {
      for (char c : {'0', '1'}) {
        int count = 0;
        for (int u : {0, 1, 2}) {
          count += s[u][pos[u]] == c;
        }
        if (count >= 2) {
          ans.push_back(c);
          for (int u : {0, 1, 2}) {
            if (s[u][pos[u]] == c) ++pos[u];
          }
          break;
        }
      }
    }
    int found = 0;
    for (int i = 0; i < 3; ++i) found += pos[i] == 2 * n;
    assert(found >= 1);
    if (found < 2) {
      int mx = -1;
      for (int i = 0; i < 3; ++i) if (pos[i] != 2 * n && (mx == -1 || pos[i] > pos[mx])) mx = i;
      for (;pos[mx] < 2 * n; ++pos[mx]) {
        ans.push_back(s[mx][pos[mx]]);
      }
    }

    std::cout << ans << '\n';
  }
  return 0;
}