#include <bits/stdc++.h>
using namespace std;
int jilu[5005][2];
int n;
struct node {
  int yao, qian;
};
struct nnode {
  int yy, qq;
};
bool operator<(nnode a, nnode b) {
  if (a.qq == b.qq) return a.yy < b.yy;
  return a.qq > b.qq;
}
bool operator<(node a, node b) {
  if (a.yao == b.yao) return a.qian > b.qian;
  return a.yao < b.yao;
}
multiset<node> zong;
multiset<nnode> liu;
int main() {
  ios::sync_with_stdio(false);
  int t;
  cin >> t;
  while (t--) {
    zong.clear();
    liu.clear();
    cin >> n;
    for (int i = 1; i <= n; i++) {
      cin >> jilu[i][0] >> jilu[i][1];
      node temp;
      temp.yao = jilu[i][0];
      temp.qian = jilu[i][1];
      zong.insert(temp);
    }
    for (int i = 0; i < n; i++) {
      while (!zong.empty() && ((*zong.begin()).yao <= i)) {
        nnode cc;
        cc.yy = (*zong.begin()).yao;
        cc.qq = (*zong.begin()).qian;
        liu.insert(cc);
        zong.erase(zong.begin());
      }
      if (!liu.empty()) {
        liu.erase(liu.begin());
      }
    }
    long long res = 0;
    for (set<nnode>::iterator it = liu.begin(); it != liu.end(); it++) {
      res += (*it).qq;
    }
    cout << res << endl;
  }
  return 0;
}
