Узоры
Маленький Сергей очень любит играть в игры. Сегодня он изобрел новую игру для себя. У него имеется n^2
кубиков. Каждая грань каждого кубика окрашена в один из шести цветов. Разные грани одного куба могут быть выкрашены одинаковыми цветами. У него также имеется доска размером n × n. На каждой клетке доски должен находиться в точности один куб. Для каждого куба Сергей выбирает его положение на доске и его грань сверху. Таким образом он получит узор n × n, образованный цветами верхних граней кубиков.
Поиграв немного, Сергей захотел выяснить, сколько различных цветных узоров можно получить этими кубиками. Два узора считаются разными, если в них существует хотя бы одна ячейка, имеющая разные цвета. Узор нельзя вращать или отражать. Сергей - маленький мальчик, у него ограничены знания о больших числах, поэтому он хочет найти ответ по модулю 10^9
+ 7.
Входные данные
Первая строка содержит размер n (1 ≤ n ≤ 5) доски. Следующие n^2
строк содержат описание кубиков. Каждый кубик задается строкой длины 6. Она состоит из следующих букв: "R" красный, "G" зеленый, "B" синий, "Y" желтый, "C" голубой и "M" пурпурный. Порядок, в котором заданы цвета граней, не важен.
Выходные данные
Вывести одно число: ответ к задаче по модулю 10^9
+ 7.