eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Узоры

Узоры

Маленький Сергей очень любит играть в игры. Сегодня он изобрел новую игру для себя. У него имеется n2 кубиков. Каждая грань каждого кубика окрашена в один из шести цветов. Разные грани одного куба могут быть выкрашены одинаковыми цветами. У него также имеется доска размером n × n. На каждой клетке доски должен находиться в точности один куб. Для каждого куба Сергей выбирает его положение на доске и его грань сверху. Таким образом он получит узор n × n, образованный цветами верхних граней кубиков.

Поиграв немного, Сергей захотел выяснить, сколько различных цветных узоров можно получить этими кубиками. Два узора считаются разными, если в них существует хотя бы одна ячейка, имеющая разные цвета. Узор нельзя вращать или отражать. Сергей - маленький мальчик, у него ограничены знания о больших числах, поэтому он хочет найти ответ по модулю 109 + 7.

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

Первая строка содержит размер n (1n5) доски. Следующие n2 строк содержат описание кубиков. Каждый кубик задается строкой длины 6. Она состоит из следующих букв: "R" красный, "G" зеленый, "B" синий, "Y" желтый, "C" голубой и "M" пурпурный. Порядок, в котором заданы цвета граней, не важен.

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

Вывести одно число: ответ к задаче по модулю 109 + 7.

Лимит времени 1 секунда
Лимит использования памяти 128 MiB
Входные данные #1
2
RRRRRR
BBBBBB
GGGGGG
CCYYMM
Выходные данные #1
72
Входные данные #2
1
YYYYYY
Выходные данные #2
1
Источник 2013 Петрозаводск, Moscow SU ST + NNSU Contest, День 2, Август 24, Задача F