#include<bits/stdc++.h>
#define X first
#define Y second
#define pb push_back
#define eb emplace_back
#define rep(X,Y) for (int (X) = 0;(X) < (Y);++(X))
#define rrep(X,Y) for (int (X) = (Y)-1;(X) >=0;--(X))
#define all(X) (X).begin(),(X).end()
#define rall(X) (X).rbegin(),(X).rend()
#define reps(i,j,k) for(int i=(j);i<=(k);++i)
#define in(i,j,k) ((i)>=(j)&&(i)<=(k))
#define sz size()


using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<int,pii> piii;

enum FACE{TOP,BOTTOM,FRONT,BACK,LEFT,RIGHT};
class dice{
public:
  dice(int t,int f){
    id[TOP]=1; id[FRONT]=3; id[LEFT]=2;
    id[RIGHT]=5; id[BACK]=4; id[BOTTOM]=6;
    if(!roll(7-t) && id[TOP]!=t)
      rep(i,2) roll(TOP,FRONT,BOTTOM,BACK);
    while(id[FRONT]!=f)
      roll(FRONT,LEFT,BACK,RIGHT);
  }

  bool roll(int num){
    int opp[]={0,0,3,2,5,4};
    for(int i=2;i<6;++i)
      if(id[i]==num){
	roll(TOP,(FACE)opp[i],BOTTOM,(FACE)i);
	return 1;
      }
    return 0;
  }
  void roll(FACE a,FACE b,FACE c,FACE d){
    int tmp=id[a];
    id[a]=id[b]; id[b]=id[c];
    id[c]=id[d]; id[d]=tmp;
  }
  int id[6];
};
ostream& operator<<(ostream &os,const dice &d){
  os<<d.id[TOP]<<endl;
  os<<d.id[FRONT]<<" "<<d.id[RIGHT]<<" "<<d.id[BACK]<<" "<<d.id[LEFT]<<endl;
  os<<d.id[BOTTOM]<<endl;
  return os;
}
int dx[]={1,0,-1,0},dy[]={0,1,0,-1},dd[]={FRONT,RIGHT,BACK,LEFT};
int main(){
  int n;
  while(cin>>n,n){
    int tp,fr;
    int hei[300][300]={},val[300][300]={};
    rep(i,n){
      int y=150,x=150;
      cin>>tp>>fr;
      dice d(tp,fr);
      int f=1;
      while(f){
	f=0;
	for(int v=6;v>3;--v){
	  rep(i,4)if(d.id[dd[i]]==v)
	    if(hei[y+dy[i]][x+dx[i]]<hei[y][x]){
	      y+=dy[i]; x+=dx[i];
	      d.roll(v);
	      //cout<<v<<","<<i<<endl;
	      f=1; break;
	    }
	  if(f)break;
	}
      }
      hei[y][x]++;
      val[y][x]=d.id[TOP];
      /*
      for(int i=145;i<155;++i){
	for(int j=145;j<155;++j)
	  cout<<hei[i][j]<<",";
	cout<<endl;
      }cout<<endl;
      for(int i=145;i<155;++i){
	for(int j=145;j<155;++j)
	  cout<<val[i][j]<<",";
	cout<<endl;
	}cout<<"----"<<endl;*/
    }
    vector<int> re(7);
    rep(i,300)rep(j,300)
      re[val[i][j]]++;
    rep(i,7)if(i)
      cout<<(i==1?"":" ")<<re[i];
    cout<<endl;
  }
  return 0;
}