Задача №111696. Палиндром

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

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

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

Во входном файле содержится заданная строка. Гарантируется, что она содержит хотя бы одну букву. Длина строки не превосходит 100 000.

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

В первой строке выходного файла выведите YES, если строка может быть получена каким-нибудь из описанных выше преобразований из некоторого палиндрома, и NO в противном случае.

В случае положительного ответа во второй строке выведите какой-нибудь из палиндромов, в которых мог допустить опечатку пользователь

Примеры
Входные данные
Never odd or even
Выходные данные
YES
NEVERODDOREVEN
Входные данные
Eat it!
Выходные данные
NO
Входные данные
Mums are not set as a test on Erasmus.
Выходные данные
YES
SUMSARENOTSETASATESTONERASMUS
Сдать: для сдачи задач необходимо войти в систему