#include <iostream>
#include <algorithm>
#include <map>

using namespace std;

typedef pair<int, int> P;

map<P, int> side;
P data[205][205];
int dy[] = {-1, 0, 1, 0};
int dx[] = {0, 1, 0, -1};
int a, b, c, n;

void print(){
  int ans[6];
  fill(ans, ans+6, 0);
  for(int i=0;i<205;i++) for(int j=0;j<205;j++) if(data[i][j].first) ans[data[i][j].second-1]++;
  cout << ans[0];
  for(int i=1;i<6;i++) cout << ' ' << ans[i];
  cout << endl;
}

void init(){
  side.clear();
  side[P(3, 5)] = side[P(5, 4)] = side[P(4, 2)] = side[P(2, 3)] = 1;
  side[P(3, 1)] = side[P(1, 4)] = side[P(4, 6)] = side[P(6, 3)] = 2;
  side[P(5, 1)] = side[P(1, 2)] = side[P(2, 6)] = side[P(6, 5)] = 3;
  side[P(1, 5)] = side[P(5, 6)] = side[P(6, 2)] = side[P(2, 1)] = 4;
  side[P(1, 3)] = side[P(6, 4)] = side[P(4, 1)] = side[P(3, 6)] = 5;
  side[P(5, 3)] = side[P(3, 2)] = side[P(2, 4)] = side[P(4, 5)] = 6;
}

void move(int idx){
  int ta = a, tb = b, tc = c;
  if(idx == 0){
    a = tb;
    b = 7-ta;
    c = tc;
  }else if(idx == 1){
    a = 7-tc;
    b = tb;
    c = ta;
  }else if(idx == 2){
    a = 7-tb;
    b = ta;
    c = tc;
  }else if(idx == 3){
    a = tc;
    b = tb;
    c = 7-ta;
  }
}

void calc(){
  int x = 100, y = 100;
  while(1){
    bool f = false;
    int idx, ny, nx;
    for(int k=6;k>3;k--){
      if(a == k) continue;
      else if(b == k) idx = 2;
      else if(c == k) idx = 1;
      else if(7-a == k) continue;
      else if(7-b == k) idx = 0;
      else if(7-c == k) idx = 3;
      ny = y + dy[idx];
      nx = x + dx[idx];
      if(data[y][x].first <= data[ny][nx].first) continue;
      f = true;
      break;
    }
    if(f){
      y = ny;
      x = nx;
      move(idx);
    }else{
      data[y][x].first++;
      data[y][x].second = a;
      return;
    }
  }
}


int main(){
  init();
  while(cin >> n && n){
    fill(data[0], data[205], P(0, 0));
    for(int i=0;i<n;i++){
      cin >> a >> b;
      c = side[P(a, b)];
      calc();
    }
    print();
  }
}