#include <cstdio>
#include <vector>
#include <algorithm>

using namespace std;

class data{
public:
	int num,score;
	data(int nn,int sc){
		num=nn;
		score=sc;
	}
	bool operator<(const data& da)const{
		if(da.score==score)return da.num<num;
		return da.score<score;
	}
};

int m;
int num[10000];
int score[10000][11][2],pts[11],sp,st[11];
vector<data> d;

int main(void){
	while(1){
		scanf("%d",&m);
		if(m==0)break;
		d.clear();
		for(int i=0;i<m;i++){
			scanf("%d",&num[i]);
			sp=0;
			for(int j=0;j<10;j++){
				scanf("%d",&score[i][j][0]);
				if(sp==1){
					pts[j-1]+=score[i][j][0];
					sp=0;
				}
				if(j>0 && st[j-1]>0){
					pts[j-1]+=score[i][j][0];
					st[j-1]--;
				}
				if(j>1 && st[j-2]>0){
					pts[j-2]+=score[i][j][0];
					st[j-2]--;
				}
				if(score[i][j][0]==10){
					if(j==9){
						scanf("%d %d",&score[i][j][1],&score[i][j][2]);
						pts[9]=score[i][j][0]+score[i][j][1]+score[i][j][2];
						if(j>0 && st[j-1]>0){
							pts[j-1]+=score[i][j][1];
							st[j-1]--;
						}
						if(j>1 && st[j-2]>0){
							pts[j-2]+=score[i][j][1];
							st[j-2]--;
						}
					}else{
						st[j]=2;
						pts[j]=10;
					}
				}else{
					scanf("%d",&score[i][j][1]);
					if(score[i][j][0]+score[i][j][1]==10){
						if(j==9){
							scanf("%d",&score[i][j][2]);
							pts[9]=10+score[i][j][2];
						}else{
							pts[j]=10;
							sp=1;
						}
					}else pts[j]=score[i][j][0]+score[i][j][1];
					if(j>0 && st[j-1]>0){
						pts[j-1]+=score[i][j][1];
						st[j-1]--;
					}
					if(j>1 && st[j-2]>0){
						pts[j-2]+=score[i][j][1];
						st[j-2]--;
					}
				}
			}
			int sc=0;
			for(int j=0;j<10;j++){
				sc+=pts[j];
			}
			d.push_back(data(num[i],sc));
		}
		sort(d.begin(),d.end());
		for(int i=0;i<m;i++){
			printf("%d %d\n",d[i].num,d[i].score);
		}
	}
}