#include<iostream>
#include<vector>
#include<set>
#include<map>
#include<cmath>
#include<algorithm>
#include<iterator>
using namespace std;

vector<int> F;
vector<int> R;

int main() {
  int N; cin >> N;
  while (N--) {
    int K,L = 0,M = 0; cin >> K;
    F.resize(K);
    R.resize(K);
    for (int i = 0; i < K; ++i)
      cin >> F[i];
    for (int i = 0; i < K; ++i)
      cin >> R[i];

    for (int i = 0; i < K; ++i) {
      for (int j = 0; j < K; ++j) {
        M += min(F[i], R[j]);
      }
    }

    sort(F.begin(), F.end());
    reverse(F.begin(), F.end());
    sort(R.begin(), R.end());
    reverse(R.begin(), R.end());

    unsigned i = 0, j = 0;
    while (i < F.size() && j < R.size()) {
      if (F[i] == R[j]) {
        L += F[i];
        ++i; ++j;
      } else if (F[i] > R[j]) {
        L += F[i];
        ++i;
      } else {
        L += R[j];
        ++j;
      }
    }
    while (i < F.size()) {
      L += F[i];
      ++i;
    }
    while (j < R.size()) {
      L += R[j];
      ++j;
    }

    cout << "Minimalni budova obsahuje " << L << " kostek, maximalni " << M << " kostek.\n";
  }
  return 0;
}
