#include<bits/stdc++.h>
using namespace std;
struct team
{
int id;//序号
int s;//积分
int g1;//净胜球
int g2;//总进球数
int g3;//总丢球球数
}t[30];//结构型数组
bool cmp(team x,team y){
if(x.s != y.s) return x.s > y.s;
else if(x.g1 != y.g1) return x.g1 > y.g1;
else if(x.g2 != y.g2) return x.g2 > y.g2;
//else return true;//万一出现都相等,则返回cmp本身的从小到大的顺序,即x<y,x在前,y在后。
}
int main()
{
int n,a,b,i,j; char c; cin>>n;
t[i].s = t[i].g1 = t[i].g2 = t[i].g3 = 0;
t[j].s = t[j].g1 = t[j].g2 = t[j].g3 = 0;
for(i=1;i<=n;i++){
t[i].id = i; //读入横着第i个序号
for(j=1;j<=n;j++){
t[j].id = j;//读入竖着第j个序号
if(i == j){
cin>>a; continue;//这里输入a 不懂//这里输入a 不懂//这里输入a 不懂//这里输入a 不懂/
}
cin>>a>>c>>b;
if(a > b) t[i].s += 3;
else if(a < b) t[j].s += 3;
else t[i].s += 1,t[j].s += 1;
t[i].g2 += a; t[j].g2 += b;//总进球数
t[i].g3 += b; t[j].g3 += a;//总丢球球数
}
}
for(i=1;i<=n;i++)
t[i].g1 = t[i].g2 - t[i].g3;//总净胜球
sort(t+1,t+n+1,cmp);//排序
for(i=1;i<=n;i++)
cout<<t[i].id<<" "<<t[i].s<<" "<<t[i].g1<<" "<<t[i].g2<<endl;
return 0;
}