Условие:
Легенда
Агент искусственного интеллекта шифрует исходящие сообщения с помощью классического (и слабого) алгоритма XOR с повторяющимся ключом. Секретный ключ из K байтов выбирается один раз. Для шифрования сообщения в открытом виде P(последовательности байтов) каждый байт открытого текста подвергается операции XOR с байтом ключа, который циклически повторяет ключ:\ncipher[i] = plain[i] XOR key[i mod K]
Затем зашифрованный текст передается в виде шестнадцатеричной строки в нижнем регистре (две шестнадцатеричные цифры на байт).
Протокол имеет фатальный недостаток: каждое сообщение начинается с одной и той же фиксированной строки рукопожатия H (баннера или заголовка протокола). Вы знаете H, и вы знаете длину ключа K(с помощью K <= len(H)). Это классический пример атаки с известным открытым текстом: первые K байты открытого текста известны, чего достаточно для восстановления всего ключа.
Вы перехватили M сообщения, все зашифрованные одним и тем же ключом и начинающиеся с H. Восстановите ключ и расшифруйте каждое сообщение.
Задача
Имея длину ключа K, известный префикс открытого текста H и M зашифрованные в шестнадцатеричном формате данные, восстановите K ключ в -байтах и распечатайте полный расшифрованный открытый текст каждого сообщения.
Формат ввода
Первая строка содержит два целых числа K и M( 1 <= K <= 64, 1 <= M <= 100).
Вторая строка содержит известную строку рукопожатия H, приведенную дословно (она может содержать пробелы) с помощью K <= len(H) <= 1000.
Каждая из следующих M строк содержит один зашифрованный текст в виде шестнадцатеричной строки в нижнем регистре четной длины. Каждое сообщение занимает от K до 100000байтов (до 200000 шестнадцатеричных символов).
Формат вывода
Вывод M строк. Строка t — это расшифрованный открытый текст i t-го зашифрованного текста, выводимый в виде необработанного текста. Гарантируется, что каждый открытый текст состоит из печатных символов ASCII (байтов 32..126), возможно, включая пробелы.

