#include <bits/stdc++.h>
using namespace std;
int main() {
  int q;
  scanf("%d", &q);
  while (q--) {
    int n, type, f;
    scanf("%d", &n);
    vector<int> c(n, 0), x(n, 0);
    for (int i = 0; i < n; i++) {
      scanf("%d %d", &type, &f);
      c[type - 1]++;
      if (f) {
        x[type - 1]++;
      }
    }
    vector<vector<int>> a(n);
    for (int i = 0; i < n; i++) {
      if (c[i]) {
        a[c[i] - 1].push_back(x[i]);
      }
    }
    int ans = 0, mx = 0;
    multiset<int> st;
    for (int i = n; i >= 1; i--) {
      for (auto j : a[i - 1]) {
        st.insert(j);
      }
      if (!st.empty()) {
        ans += i;
        mx += min(i, *st.rbegin());
        st.erase(prev(st.end()));
      }
    }
    printf("%d %d\n", ans, mx);
  }
}
