#include <stdio.h>

int main() {
    int n;
    int i, j, k;
    int t, f;
    //int l, r, b;
    int field[100][100][100];
    int left[6][6] = {{0, 4, 2, 5, 3, 0}, {3, 0, 6, 1, 0, 4}, {5, 1, 0, 0, 6, 2}, {2, 6, 0, 0, 1, 5}, {4, 0, 1, 6, 0, 3}, {0, 3, 5, 2, 4, 0}};
    //int dice[6][2] = {{5, 4}, {6, 4}, {6, 5}, {6, 5}, {6, 4}, {5, 4}};
    // u = 0, r = 1, d = 2, l = 3
    int dice[6][6][2] = {{{-1, -1}, {0, 3}, {1, 0}, {3, 2}, {2, 1}, {-1, -1}}, {{0, 1}, {-1, -1}, {3, 0}, {1, 2}, {-1, -1}, {2, 3}}, {{0, 3}, {1, 0}, {-1, -1}, {-1, -1}, {3, 2}, {2, 1}}, {{0, 1}, {3, 0}, {-1, -1}, {-1, -1}, {1, 2}, {2, 3}}, {{0, 3}, {-1, -1}, {1, 0}, {3, 2}, {-1, -1}, {2, 1}}, {{-1, -1}, {0, 1}, {3, 0}, {1, 2}, {2, 3}, {-1, -1}}}; 
    int result[6];
    int tmp2;
    while (1) {
	scanf("%d", &n);
	if (n == 0) {
	    break;
	}
	for (i = 0; i < 100; i++) {
	    for (j = 0; j < 100; j++) {
		for (k = 0; k < 100; k++) {
		    field[i][j][k] = 0;
		}
	    }
	}
	for (i = 0; i < 6; i++) {
	    result[i] = 0;
	}

	for (i = 0; i < n; i++) {
	    int x, y, z;
	    x = y = 50;
	    z = 99;
	    scanf("%d %d", &t, &f);
	    // b = 7 - f;
	    // l = left[t-1][f-1];
	    // r = 7 - l;
	    while (1) {
		fail: ;
		while (z > 0 && field[x][y][z-1] == 0) {
		    z--;
		    //field[x][y][z+1] = 0;
		    //field[x][y][z] = t;
		}
		
		for (j = 0; j < 2; j++) {
		    if (z == 0) {
			goto fallend;
		    }
		    int tmp = dice[t-1][f-1][j];
		    if (tmp == 0) {
			if (field[x][y+1][z-1] == 0) {
			    //field[x][y][z] = 0;
			    //field[x][y+1][z-1] = f;
			    y++;
			    z--;
			    tmp2 = f;
			    f = 7 - t;
			    t = tmp2;
			    goto fail;
			}
		    } else if (tmp == 1) {
			if (field[x+1][y][z-1] == 0) {
			    //field[x][y][z] = 0;
			    t = left[t-1][f-1];
			    //field[x+1][y][z-1] = t;
			    x++;
			    z--;
			    goto fail;
			}
		    } else if (tmp == 2) {
			if (field[x][y-1][z-1] == 0) {
			    //field[x][y][z] = 0;
			    //field[x][y+1][z-1] = 7 - f;
			    y--;
			    z--;
			    tmp2 = t;
			    t = 7 - f;
			    f = tmp2;
			    goto fail;
			}
		    } else {
			if (field[x-1][y][z-1] == 0) {
			    //field[x][y][z] = 0;
			    t = 7 - left[t-1][f-1];
			    //field[x-1][y][z-1] = t;
			    x--;
			    z--;
			    goto fail;
			}
		    }
		}
		break;
	    } fallend: field[x][y][z] = t;
	    //printf("%d %d %d %d\n", x, y, z, t);
	}

	for (i = 0; i < 100; i++) {
	    for (j = 0; j < 100; j++) {
		for (k = 0; k < 100; k++) {
		    if (k == 99 || field[i][j][k+1] == 0) {
			int tmpres = field[i][j][k];
			result[tmpres-1]++;
		    }
		}
	    }
	}
	for (i = 0; i < 6; i++) {
	    printf("%d", result[i]);
	    if (i != 5) {
		printf(" ");
	    }
	}
	printf("\n");

    }

    return 0;
}