#include <bits/stdc++.h>
using namespace std;
const int N = 55;
int n, par[N], e[N][N], te[N][N], deg[N], tdeg[N];
vector<int> gb[N];
void dfs(int u) {
  for (int v : gb[u])
    if (v != par[u]) {
      par[v] = u;
      dfs(v);
    }
}
void change(vector<int> &available, int u) {
  available.erase(find(available.begin(), available.end(), u));
  for (auto v : gb[u])
    if (v != par[u]) {
      available.push_back(v);
    }
}
int calc(int root) {
  par[root] = 0;
  dfs(root);
  for (int i = 1; i <= n; ++i) {
    tdeg[i] = deg[i];
    for (int j = 1; j <= n; ++j) {
      te[i][j] = e[i][j];
    }
  }
  vector<int> available(1, root);
  change(available, root);
  int ret = 0;
  while (!available.empty()) {
    bool found = false;
    for (auto u : available) {
      if (te[u][par[u]]) {
        found = true;
        change(available, u);
        break;
      }
      if (tdeg[u] == 1) {
        found = true;
        for (int i = 1; i <= n; ++i)
          if (te[i][u]) {
            te[i][u] = te[u][i] = false;
            --tdeg[i];
            --tdeg[u];
          }
        te[u][par[u]] = te[par[u]][u] = true;
        ++tdeg[u];
        ++tdeg[par[u]];
        ++ret;
        change(available, u);
        break;
      }
    }
    if (!found) return 1e9;
  }
  return ret;
}
void solve() {
  cin >> n;
  for (int i = 1; i <= n; ++i) {
    deg[i] = 0;
    gb[i].clear();
    for (int j = 1; j <= n; ++j) {
      e[i][j] = 0;
    }
  }
  for (int i = 1; i < n; ++i) {
    int u, v;
    cin >> u >> v;
    e[u][v] = e[v][u] = true;
    ++deg[u];
    ++deg[v];
  }
  for (int i = 1; i < n; ++i) {
    int u, v;
    cin >> u >> v;
    gb[u].push_back(v);
    gb[v].push_back(u);
  }
  int res = 1e9;
  for (int i = 1; i <= n; ++i) {
    int cur = calc(i);
    res = min(res, cur);
  }
  for (int i = 1; i <= n; ++i)
    if (deg[i] == 1) {
      int adj_i = 0;
      for (int j = 1; j <= n; ++j)
        if (e[i][j]) {
          adj_i = j;
          e[i][j] = e[j][i] = false;
          --deg[i];
          --deg[j];
        }
      for (int j = 1; j <= n; ++j)
        if (i != j) {
          e[i][j] = e[j][i] = true;
          ++deg[i];
          ++deg[j];
          res = min(res, calc(i) + 1);
          e[i][j] = e[j][i] = false;
          --deg[i];
          --deg[j];
        }
      e[i][adj_i] = e[adj_i][i] = true;
      ++deg[i];
      ++deg[adj_i];
    }
  cout << (res == 1e9 ? -1 : res) << endl;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  int tt;
  cin >> tt;
  while (tt--) {
    solve();
  }
}
