Олимпиадный тренинг

Задача . A. Задача Читериуса


Задача

Темы: реализация *1300

Читериус — знаменитый на всю Берляндию астролог, маг, волшебник, а также обманщик и пройдоха. Одно из последних его изобретений — амулеты Читериуса! Они приносят удачу и здоровье, однако стоят немалых денег. Читериус изготавливает их сам. Секрет изготовления храниться в глубокой тайне. Но мы то знаем, что долгими ночами Читериус склеивает супер-клеем доминошки по две, чтобы получать квадратики 2 × 2 — волшебные амулеты Читериуса!

Так выглядит один из амулетов Читериуса

После тяжелой трудовой ночи Читериус изготовил n амулетов. Каждый из них представляет собой квадрат 2 × 2, каждая четвертинка содержит от 1 до 6 точек. Теперь он хочет разложить их в стопки, каждая стопка должна содержать одинаковые амулеты. Два амулета называются одинаковыми, если их можно повернуть так, что после наложения их друг на друга количества точек в соответствующих четвертинках окажется равным. Переворачивать амулеты нельзя.

Напишите программу, которая по заданным амулетам найдет количество стопок на столе Читериуса.

Входные данные

В первой строке записано целое число n (1 ≤ n ≤ 1000), n — количество амулетов. Далее содержатся описания амулетов. Каждое описание занимает две строки и содержит по две цифры (от 1 до 6) в каждой из строк. Между каждой парой амулетов находится строка «**».

Выходные данные

Выведите искомое количество стопок.


Примеры
Входные данныеВыходные данные
1 4
31
23
**
31
23
**
13
32
**
32
13
1
2 4
51
26
**
54
35
**
25
61
**
45
53
2

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя