#include <bits/stdc++.h>
using namespace std;
const long long maxn = 1321300;
const long long inf = 1012345678;
struct node {
  long long a, id, b;
  node() {}
  node(long long x, long long y, long long idd) {
    a = x;
    b = y;
    id = idd;
  }
} a[maxn];
bool operator<(const node &a, const node &b) { return a.a > b.a; }
long long n, m;
vector<long long> vc, vb;
int main() {
  long long i, j, k;
  long long t;
  cin >> t;
  while (t--) {
    vc.clear();
    vb.clear();
    cin >> n;
    long long x, y, sum = 0;
    for (i = 0; i < 2 * n - 1; i++) {
      cin >> x >> y;
      ;
      a[i] = node(x, y, i);
      sum += y;
    }
    sort(a, a + 2 * n - 1);
    long long all = a[0].b, qq = a[0].b;
    vc.push_back(a[0].id);
    vb.push_back(a[0].id);
    for (i = 1; i < 2 * n - 1; i += 2) {
      all += a[i].b;
      qq += a[i + 1].b;
      vc.push_back(a[i].id);
      vb.push_back(a[i + 1].id);
    }
    sort(vc.begin(), vc.end());
    sort(vb.begin(), vb.end());
    if (2 * all >= sum) {
      puts("YES");
      for (i = 0; i < (long long)vc.size(); i++) {
        if (i > 0) printf(" ");
        printf("%lld", vc[i] + 1);
      }
      cout << endl;
    } else if (2 * qq >= sum) {
      puts("YES");
      for (i = 0; i < (long long)vb.size(); i++) {
        if (i > 0) printf(" ");
        printf("%lld", vb[i] + 1);
      }
      cout << endl;
    } else
      puts("NO");
  }
}
