Передача даних#612

Передача даних

1 секунда
128 мегабайтів
Легка

Дані передаються від передавача до приймача через канал зв'язку у вигляді послідовності бітів. Через властивості каналу під час передавання можуть виникати спотворення. Таким чином, бітова послідовність , яку отримує приймач, може відрізнятись від бітової послідовності , яку надіслав передавач. Одним із можливих спотворень при передачі є так звана транспозиція сусідніх бітів. При такому спотворенні і відрізняються лише у точно двох суміжних позиціях та i+1, причому s_i = t_{i+1}, s_{i+1} = t_i, а для всіх j \ne i, j \ne i+1 виконується s_j = t_j.

Ви досліджуєте передачу інформації. Зараз ви працюєте над системою кодування для важливого державного каналу зв'язку. Код, який ви розробляєте, має вміти виправляти одну транспозицію сусідніх бітів. Щоб зробити код максимально ефективним, вам потрібно оцінити надійність цього каналу. Надійність перевіряють так: через канал передають кілька бітових послідовностей s_1, s_2, \ldots, s_n, на приймачі реєструють отримані послідовності t_1, t_2, \ldots, t_n і порівнюють із надісланими. За кількістю послідовностей, отриманих без спотворення або з однією транспозицією, робиться висновок про надійність каналу.

Оскільки послідовності, які використовуються для передачі, досить довгі, порівнювати їх вручну надто складно та займатиме багато часу. Тому ви вирішили написати програму для виконання цього порівняння.

Напишіть програму, яка для двох заданих послідовностей і визначає, чи можна отримати із не більше ніж однією транспозицією сусідніх символів.

Вхідні дані

У першому рядку записано послідовність , у другому — послідовність . Обидві послідовності ненульової довжини, містять лише символи та , їх довжина не перевищує 10^5.

Вихідні дані

Якщо можна отримати з описаним способом, виведіть YES; інакше виведіть NO.

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading

Приклад 3

Loading
Loading