시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB29242395.833%

문제

При расследовании дорожно-транспортных происшествий часто возникают проблемы с розыском автомобилей, водители которых покинули место происшествия.

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

По полученному от свидетеля происшествия номеру, подсчитайте, сколько различных номеров может получиться из него перестановкой букв и/или цифр, а также выведите все такие номера.

Напомним, что автомобильные номера в России состоят из трех букв и трех цифр, упорядоченных следующим образом: буква, три цифры, затем две буквы. Фрагмент номера, который идентифицирует регион, в котором зарегистрирован автомобиль, мы будем игнорировать.

В номере могут использоваться следующие буквы: <<A>>, <<B>>, <<C>>, <<E>>, <<H>>, <<K>>, <<M>>, <<O>>, <<P>>, <<T>>, <<X>>, <<Y>> (эти буквы имеют схожие по написанию аналоги как в русском, так и в латинском алфавите). В этой задаче во входном файле будут использоваться буквы латинского алфавита.

입력

Входной файл содержит одну строку, которая представляет собой корректный автомобильный номер.

출력

В первой строке выходного файла выведите число $k$ --- количество номеров, которые могут получиться из заданного перестановкой букв и/или цифр.

В последующих $k$ строках выведите все такие номера в произвольном порядке.

예제 입력 1

X772KX

예제 출력 1

9
X277XK
X277KX
X727XK
X727KX
X772XK
X772KX
K277XX
K727XX
K772XX