#include <iostream>
#include <iostream>
#include <vector>
#include <map>
#include <string>
#include <algorithm rel='nofollow' onclick='return false;'>
#include <sstream>
#include <stdio.h>
#include <stdlib.h>
//using namespace std;
typedef struct {
int num;
float money;
int refer;
int rank;
}ID;
bool cmp(ID p1, ID p2) {
if (p1.money != p2.money) {
return p1.money > p2.money;
}
if (p1.refer != p2.refer) {
return p1.refer > p2.refer;
}
if (p1.num < p2.num) {
return true;
}
return false;
}
int main(int argc, const char * argv[]) {
int N=0;
scanf("%d",&N);
ID member[10010];
for (int i=0; i<N; i++) {
member[i].num=i+1;
member[i].refer=0;
member[i].rank=i+1;
}
// int num1=0;
int K=0;
int num=0,mo=0;
int sum=0;
int g[10010][2];
for (int i=0; i<N; i++) {
// scanf("%d",&num1);
sum=0;
scanf("%d",&K);
for (int j=0; j<K; j++) {
scanf("%d %d",&num,&mo);
sum+=mo;
member[num-1].money+=mo;
member[num-1].refer++;
}
member[i].money-=(float)sum;
}
for (int i=0; i<N; i++) {
member[i].money/=100.0;
}
for (int i=0; i<N; i++) {
g[i][0]=i+1;
g[i][1]=member[i].money;
}
//重点是排序。
std::sort(g+1, g+1 + N, cmp);//对这些人进行排序
return 0;
}