В задаче используется упрощенная модель адресов в TCP/IP, внимательно прочтите условие.
IP-адрес — это 32-битное число, представленное в виде четверки десятичных 8-битных чисел (без лидирующих нулей), записанных через точку. Например, запись 0.255.1.123 обозначает корректный IP-адрес, а записи 0.256.1.123 и 0.255.1.01 — нет. В данной задаче произвольная четверка 8-битных чисел является корректным IP-адресом.
Наш герой Поликарп до сих пор работает системным администратором в некоторой большой корпорации. Ему нравятся красивые IP-адреса. Чтобы проверить, является ли некоторый IP-адрес красивым, нужно сделать следующее:
- выписать в строку четверку 8-битных чисел IP-адреса, пропуская точки;
- проверить, является ли получившаяся строка палиндромом.
Напомним, что палиндромом называется строка, которая одинаково читается справа налево и слева направо.
Например IP-адреса 12.102.20.121 и 0.3.14.130 являются красивыми (поскольку строки «1210220121» и «0314130» являются палиндромами), а IP-адреса 1.20.20.1 и 100.4.4.1 — нет.
Поликарп хочет найти все красивые IP-адреса, в которых встречается заданный набор цифр. Каждая цифра из набора должна встречаться в IP-адресе не менее одного раза, никакие другие цифры не должны встречаться в IP-адресе. Помогите ему справиться с этой нелегкой задачей.
Выходные данные
В первую строку выведите единственное число k — количество красивых IP-адресов, которые содержат заданный набор цифр. Далее в k строк выведите сами IP-адреса по одному в строке в произвольном порядке.