#include<bits/stdc++.h>
using namespace std;
struct node{
int id,num;
double q;
}a[10009];
bool cmp(node a,node b){
if(a.q!=b.q) return a.q>b.q;
if(a.num!=b.num) return a.num>b.num;
return a.id<b.id;
}
int main(){
int n,k,h,g;
cin>>n;
for(int i=1;i<=n;i++) a[i].id=i,a[i].num=0;
for(int i=1;i<=n;i++){
cin>>k;
while(k--){
cin>>h>>g;
a[h].num++;
a[i].q-=g;
a[h].q+=g;//此处不可直接换算单位(*0.01),否则排序会出现精度问题
}
}
// cout<<a[8].q<<endl;
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<fixed<<setprecision(2)<<a[i].id<<" "<<a[i].q*0.01<<endl;
}
// cout<<a[2].num<<" "<<a[2].q<<" "<<a[8].num<<" "<<a[8].q;
return 0;
}