#include <iostream>
#include <string>
#include <algorithm>
#include <math.h>
#include <vector>
#include <set>

using namespace std;
typedef long long LL;
static const double EPS = 1e-9;

#define FOR(i,k,n) for (int i=(k); i<(int)(n); ++i)
#define REP(i,n) FOR(i,0,n) 
class Mem{
  public:
  int name;
  int point;
  
  bool operator <(const Mem& b) const
  {
    if(point>b.point) return true;
    if(point<b.point) return false;
    if(name<b.name) return true;
    return false;
  };
  
};
int main(void){ 
  int n;
  while(cin>>n){
    if(!n) break;
    Mem m[40];
    REP(i,n){
      cin>>m[i].name;
      int p[10][3]={0};
      REP(j,9){
        cin>>p[j][0];
        if(p[j][0]!=10)
          cin>>p[j][1];
      }
      cin>>p[9][0];
      cin>>p[9][1];
      if(p[9][0]+p[9][1]>=10) cin>>p[9][2];
      m[i].point = 0;
      REP(j,9){
        REP(k,2)
          m[i].point += p[j][k];
        if(p[j][0]==10){
          m[i].point += p[j+1][0];
          if(j!=8&&p[j+1][0]==10)
            m[i].point+=p[j+2][0];
          else
            m[i].point+=p[j+1][1];
        }
        else if(p[j][0]+p[j][1]==10){
          m[i].point+=p[j+1][0];
        }
      }
      m[i].point+=p[9][0]+p[9][1]+p[9][2];
    }
    sort(m,m+n);
    REP(i,n){
      cout << m[i].name << " " <<m[i].point << endl;
    }
  }
  return 0;
}