Коригування рядків
Голова журі олімпіади згенерував декілька рядків з маленьких англійських букв, які будуть вхідними даними для цікавої задачі. Голова журі дуже сподівався, що усі ці рядки є паліндромами, тобто читаються однаково зліва направо та справа наліво. Але виявилося, що, можливо, це не так! Скоріш за все була якась прикра помилка в програмі-генераторі. Часу на пошук помилки та підготовку задачі було дуже мало, тому було прийнято рішення спробувати поміняти місцями два якихось символа рядка, так щоб вийшов паліндром.
Напишіть програму, яка з'ясує, чи можна у заданому рядку поміняти місцями два якихось символи так, щоб цей рядок став паліндромом.
Input
Вашій програмі на вхід подається рядок з маленьких англійських букв. У цьому рядку не більш ніж символів.
Output
Виведіть «YES
», якщо з заданого рядка можна отримати паліндром, помінявши місцями два символи. Виведіть «NO
», якщо це зробити неможливо.
Examples
Scoring
У цієї задачі є чотири підзадачі, для яких виконуються додаткові обмеження, вказані в таблиці нижче. Бали за кожну підзадачу нараховуються тільки у випадку, якщо пройдено всі тести цієї підзадачі, а також всі тести всіх необхідних підзадач. Номери необхідних підзадач також вказані в таблиці.
( балів): ;
( балів): ;
( балів): , парне число;
( бали): немає додаткових обмежень.