Олимпиадный тренинг

Задача . B. Решение кроссворда


Вскоре Лехе наскучило считать наибольшие общие делители двух факториалов. Поэтому он решил заняться разгадыванием кроссвордов. Как известно, это очень интересное занятие, но может быть и очень сложным время от времени. В ходе разгадывания одного из кроссвордов Лехе пришлось решить несложную задачу. А сможете ли вы?

У Лехи есть две строки s и t. Теперь хакер хочет изменить строку s так, чтобы она встречалась в t в качестве подстроки. Все изменения должны иметь вид: Леха выбирает некоторую позицию в строке s и заменяет символ в этой позиции на знак вопроса «?». Хакер уверен, что знак вопроса «?» при сравнении может играть роль произвольного символа. Например, если в результате он получит строку sab?b», то она встретится в taabrbb» как подстрока.

Гарантируется, что длина строки s не превосходит длины строки t. Помогите хакеру Лехе заменить в s минимальное количество символов на знаки вопроса «?» так, чтобы результат встречался в t в качестве подстроки. Символ «?» при сравнении следует считать равным любому другому символу.

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

В первой строке следует два целых числа n и m (1 ≤ n ≤ m ≤ 1000) — длина строки s и длина строки t соответственно.

Во второй строке следует n строчных латинских букв — строка s.

В третьей строке следует m строчных латинских букв — строка t.

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

В первую строку выведите целое число k — минимальное количество символов, которые нужно заменить. Во второй строке выведите k различных целых чисел — позиции букв в строке s, которые нужно заменить. Позиции выводите в любом порядке. Если ответов несколько, разрешается вывести любой из них. Нумерация позиций начинается с единицы.


Примеры
Входные данныеВыходные данные
1 3 5
abc
xaybz
2
2 3
2 4 10
abcd
ebceabazcd
1
2

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w644
Комментарий учителя