Смещённые кости
Профессор Рэндом, известный своими исследованиями в области рандомизированных алгоритмов, проводит эксперимент с предвзятыми кубиками. В ходе эксперимента он бросает несколько кубиков на плоскость, один за другим, с фиксированной позиции над плоскостью. Кубики падают на плоскость или на уже лежащие там кубики, не вращаясь, и могут катиться и падать в соответствии со своими свойствами. Затем он наблюдает и записывает состояние стопки, образованной на плоскости, в частности, сколько раз каждое число появляется на гранях, видимых сверху. Все кубики имеют одинаковый размер и одинаковую нумерацию граней, как показано на Рисунке 1.
Рисунок 1: Нумерация кубика
Кубики обладают особыми свойствами, описанными ниже.
(1) Обычные кубики могут катиться в четырех направлениях, но кубики, используемые в этом эксперименте, никогда не катятся в направлениях граней 1, 2 и 3; они могут катиться только в направлениях граней 4, 5 и 6. В ситуации, показанной на Рисунке 2, наш кубик может катиться только в одном из двух направлений.
Рисунок 2: Обычный кубик и предвзятый кубик
(2) Кубик может катиться только тогда, когда он упадет после катания, как показано на Рисунке 3. Когда существует несколько возможностей, кубик катится в направлении грани с наибольшим числом среди тех направлений, в которые он может катиться.
Рисунок 3: Кубик может катиться только когда может упасть
(3) Когда кубик катится, он катится ровно на 90 градусов, а затем падает прямо вниз, пока его нижняя грань не коснется другого кубика или плоскости, как в случае [B] или [C] на Рисунке 4.
(4) После катания и падения кубик повторяет это в соответствии с правилами (1) - (3) выше.
Рисунок 4: Пример укладки предвзятых кубиков
Например, когда мы бросаем четыре кубика, все в одной и той же ориентации, 6 сверху и 4 спереди, то стопка будет сформирована, как показано на Рисунке 4.
Рисунок 5: Пример записей
После формирования стопки мы подсчитываем количество граней с 1 по 6, видимых сверху, и записываем их. Например, в левом случае на Рисунке 5 запись будет "0 2 1 0 0 0", а в правом случае "0 1 1 0 0 1".
Входные данные
Входные данные состоят из нескольких наборов данных, каждый в следующем формате.
n t_1 f_1t_2 f_2... t_n f_n
Здесь n (1 ≤ n ≤ 100) — это целое число и количество кубиков, которые нужно бросить. t_i и f_i (1 ≤ t_i, f_i ≤ 6) — это два целых числа, разделенные пробелом, и представляют числа на верхней и передней гранях i-го кубика, когда он отпускается, соответственно.
Конец ввода обозначается строкой, содержащей один ноль.
Выходные данные
Для каждого набора данных выведите шесть целых чисел, разделенных пробелом. Эти числа представляют количество граней с 1 по 6 соответственно, видимых сверху. В выводе не должно быть других символов.