Общение с организаторами
Получив от жюри информацию о возможных помехах при передаче сигнала с помощью лазера, экипаж тау-китянского корабля должен учесть эти помехи при чтении полученных сообщений. В тау-китянском языке отсутствуют понятия "начало слова" и "конец слова", то есть любые два слова, переводимые друг в друга последовательностью из некоторого числа циклических сдвигов, эквивалентны. Циклическим сдвигом называется преобразование слова, заключаещееся в том, что первый символ слова переставляется в его конец.
Помехи, создаваемые облаками, по расчётам бортового связиста, могут привести к тому, что ровно одна буква в каждом слове будет принята неправильно. Так как для решения задачи коррекции ошибок экипажу корабля важно знать, может ли принятое слово после замены ровно одного символа на другой, с ним не совпадающий, оказаться эквивалентным словарному слову той же длины.
Напишите программу, выполняющую такую проверку.
Входные данные
В первой строке входного файла задана длина 1 ≤ n ≤ 1000000 принятого слова. Во второй строке входного файла находится принятое слово, состоящее из n строчных латинских букв. В третьей строке находится словарное слово, также состоящее из n строчных латинских букв.
Выходные данные
В выходной файл выведите слово NO, если принятое слово или уже является эквивалентным в смысле тау-китянского языка словарному, или не может оказаться эквивалентным словарному при замене ровно одной буквы. В противном случае в первую строку выходного файла выведите YES, а во вторую - упорядоченный по возрастанию список всех порядковых номеров циклических сдвигов принятого слова, после которого строка, содержащая принятое слово отличается от строки, содержащей словарное ровно в одной позиции (определим порядковый номер циклического сдвига, состоящего из n единичных циклических сдвигов равным n. Порядковый номер "пустого" сдвига равен 0).