Не могу решить олимпиадную задачу на python
Вот сама задача: Задача F. Подберите шаблон Имя входного файла: стандартный ввод Имя выходного файла: стандартный вывод Ограничение по времени: 1 секунда Ограничение по памяти: 256 мегабайт Дана строка-шаблон t и n символьных строк si (|si | = |t|). Для каждого k от 0 до |t| выведите ответ на вопрос: • если мы заменим не более k символов в строке-шаблоне t на «?», чему будет равно количество строк si , подходящих под этот шаблон? Строка si подходит под шаблон t, если на всех позициях, где в t стоит буква, такая же буква стоит в si . На позициях, где в t стоит «?», в si может стоять любая буква. Формат входных данных В первой строке ввода содержится символьная строка t (1 6 |t| 6 16), состоящая из строчных букв латинского алфавита и символов «?». Во второй строке содержится одно целое число n (1 6 n 6 2 · 105 ) — количество строк si . В следующих n строках ввода содержатся символьные строки si (|si | = |t|), состоящие из строчных букв латинского алфавита. Формат выходных данных В единственной строке выведите |t| + 1 число — ответ для всех k (0 6 k 6 |t|).