# include <iostream>
# include <fstream>
# include <sstream>
# include <algorithm>
# include <numeric>
# include <cstdio>
# include <cmath>
# include <cstdlib>
# include <cstring>
# include <vector>
# include <list>
# include <set>
# include <map>
# include <stack>
# include <queue>
# include <deque>
using namespace std;
#define GI ({int t;scanf("%d",&t);t;})
#define FOR(i,a,b) for(int i=a;i<b;i++)
#define REP(i,n) FOR(i,0,n)
#define pb push_back
#define sz size()
#define INF (int)1e9
#define EPS LD(1e-9)
#define DINF LD(1e50)
#define MAXINT 1001
#define MDINT 1000000007
#define loop2(x,i,j,n,m) for(i=0;i<n;i++){for(j=0;j<m;j++){printf("%d ",x[i][j]);}printf("\n");}
#define loop(x,i,n) for(i=0;i<n;i++){printf("%d ",x[i]);}printf("\n");
typedef long long LL;
typedef unsigned long long ULL;
typedef vector<int> VI;
typedef vector<string> VS;
typedef vector<vector<int> > VVI;
typedef pair<int,int> PII;
typedef double LD;
int main(){
int a,t,i,j,k,n,max,store[2001][2],next,points,len;
t = GI;
REP(a,t){
n = GI ;
REP(i,n){scanf("%d%d",&store[i][0],&store[i][1]);}
REP(i,n){len[i]=1;points[i]=store[i][1];next[i]=-1;}
for(i=n-1;i>=0;i--){
for(j=i+1;j<n;j++){
if(store[j]>store[i]){
if(len[j]+1>len[i]){len[i]=len[j]+1;next[i]=j;points[i]=points[j]+store[i][1];}
if(len[j]+1==len[i]){
if(points[j]+store[i][1]>=points[i]){next[i]=j;points[i]=points[j]+store[i][1];}
}
}
}
}
for(i=0,max=0,maxi=-1;i<n;i++){
if(len[i]>max){maxi=i;max=len[i];}
while(1){printf("%d ",maxi);maxi=next[maxi];if(maxi==-1)break;}printf("\n");
}
return 0;
}
IyBpbmNsdWRlIDxpb3N0cmVhbT4KIyBpbmNsdWRlIDxmc3RyZWFtPgojIGluY2x1ZGUgPHNzdHJlYW0+CiMgaW5jbHVkZSA8YWxnb3JpdGhtPgojIGluY2x1ZGUgPG51bWVyaWM+CiMgaW5jbHVkZSA8Y3N0ZGlvPgojIGluY2x1ZGUgPGNtYXRoPgojIGluY2x1ZGUgPGNzdGRsaWI+CiMgaW5jbHVkZSA8Y3N0cmluZz4KIyBpbmNsdWRlIDx2ZWN0b3I+CiMgaW5jbHVkZSA8bGlzdD4KIyBpbmNsdWRlIDxzZXQ+CiMgaW5jbHVkZSA8bWFwPgojIGluY2x1ZGUgPHN0YWNrPgojIGluY2x1ZGUgPHF1ZXVlPgojIGluY2x1ZGUgPGRlcXVlPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgR0kgKHtpbnQgdDtzY2FuZigiJWQiLCZ0KTt0O30pCiNkZWZpbmUgRk9SKGksYSxiKSBmb3IoaW50IGk9YTtpPGI7aSsrKQojZGVmaW5lIFJFUChpLG4pIEZPUihpLDAsbikKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBzeiBzaXplKCkKI2RlZmluZSBJTkYgKGludCkxZTkKI2RlZmluZSBFUFMgTEQoMWUtOSkKI2RlZmluZSBESU5GIExEKDFlNTApCiNkZWZpbmUgTUFYSU5UIDEwMDEKI2RlZmluZSBNRElOVCAxMDAwMDAwMDA3CiNkZWZpbmUgbG9vcDIoeCxpLGosbixtKSBmb3IoaT0wO2k8bjtpKyspe2ZvcihqPTA7ajxtO2orKyl7cHJpbnRmKCIlZCAiLHhbaV1bal0pO31wcmludGYoIlxuIik7fQojZGVmaW5lIGxvb3AoeCxpLG4pIGZvcihpPTA7aTxuO2krKyl7cHJpbnRmKCIlZCAiLHhbaV0pO31wcmludGYoIlxuIik7Cgp0eXBlZGVmIGxvbmcgbG9uZyBMTDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgVUxMOwp0eXBlZGVmIHZlY3RvcjxpbnQ+IFZJOwp0eXBlZGVmIHZlY3RvcjxzdHJpbmc+IFZTOwp0eXBlZGVmIHZlY3Rvcjx2ZWN0b3I8aW50PiA+IFZWSTsKdHlwZWRlZiBwYWlyPGludCxpbnQ+IFBJSTsKdHlwZWRlZiBkb3VibGUgTEQ7CgppbnQgbWFpbigpewogICAgaW50IGEsdCxpLGosayxuLG1heCxzdG9yZVsyMDAxXVsyXSxuZXh0LHBvaW50cyxsZW47ICAgIAogICAgdCA9IEdJOwogICAgUkVQKGEsdCl7CiAgICAgIG4gPSBHSSA7CiAgICAgIFJFUChpLG4pe3NjYW5mKCIlZCVkIiwmc3RvcmVbaV1bMF0sJnN0b3JlW2ldWzFdKTt9CgogICAgICBSRVAoaSxuKXtsZW5baV09MTtwb2ludHNbaV09c3RvcmVbaV1bMV07bmV4dFtpXT0tMTt9CiAgICAgIGZvcihpPW4tMTtpPj0wO2ktLSl7Cglmb3Ioaj1pKzE7ajxuO2orKyl7CgkgIGlmKHN0b3JlW2pdPnN0b3JlW2ldKXsKICAgICAgICAgICAgaWYobGVuW2pdKzE+bGVuW2ldKXtsZW5baV09bGVuW2pdKzE7bmV4dFtpXT1qO3BvaW50c1tpXT1wb2ludHNbal0rc3RvcmVbaV1bMV07fQoJICAgIGlmKGxlbltqXSsxPT1sZW5baV0pewogICAgICAgICAgICAgICBpZihwb2ludHNbal0rc3RvcmVbaV1bMV0+PXBvaW50c1tpXSl7bmV4dFtpXT1qO3BvaW50c1tpXT1wb2ludHNbal0rc3RvcmVbaV1bMV07fQogICAgICAgICAgICB9CiAgICAgICAgICB9CQogICAgICAgIH0KICAgICAgfQogICAgICBmb3IoaT0wLG1heD0wLG1heGk9LTE7aTxuO2krKyl7CiAgICAgICAgaWYobGVuW2ldPm1heCl7bWF4aT1pO21heD1sZW5baV07fQogICAgICB3aGlsZSgxKXtwcmludGYoIiVkICIsbWF4aSk7bWF4aT1uZXh0W21heGldO2lmKG1heGk9PS0xKWJyZWFrO31wcmludGYoIlxuIik7ICAgICAKICAgICAgfQogICAgcmV0dXJuIDA7Cn0K
prog.cpp: In function ‘int main()’:
prog.cpp:48: error: invalid types ‘int[int]’ for array subscript
prog.cpp:48: error: invalid types ‘int[int]’ for array subscript
prog.cpp:48: error: invalid types ‘int[int]’ for array subscript
prog.cpp:49: warning: name lookup of ‘i’ changed
prog.cpp:42: warning: matches this ‘i’ under ISO standard rules
prog.cpp:46: warning: matches this ‘i’ under old rules
prog.cpp:52: error: invalid types ‘int[int]’ for array subscript
prog.cpp:52: error: invalid types ‘int[int]’ for array subscript
prog.cpp:52: error: invalid types ‘int[int]’ for array subscript
prog.cpp:52: error: invalid types ‘int[int]’ for array subscript
prog.cpp:52: error: invalid types ‘int[int]’ for array subscript
prog.cpp:52: error: invalid types ‘int[int]’ for array subscript
prog.cpp:52: error: invalid types ‘int[int]’ for array subscript
prog.cpp:53: error: invalid types ‘int[int]’ for array subscript
prog.cpp:53: error: invalid types ‘int[int]’ for array subscript
prog.cpp:54: error: invalid types ‘int[int]’ for array subscript
prog.cpp:54: error: invalid types ‘int[int]’ for array subscript
prog.cpp:54: error: invalid types ‘int[int]’ for array subscript
prog.cpp:54: error: invalid types ‘int[int]’ for array subscript
prog.cpp:54: error: invalid types ‘int[int]’ for array subscript
prog.cpp:59: error: ‘maxi’ was not declared in this scope
prog.cpp:60: error: invalid types ‘int[int]’ for array subscript
prog.cpp:60: error: invalid types ‘int[int]’ for array subscript
prog.cpp:42: warning: unused variable ‘a’
prog.cpp:42: warning: unused variable ‘k’
prog.cpp:64: error: expected `}' at end of input
prog.cpp:43: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
prog.cpp:45: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
prog.cpp:46: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result