Компания по защите интеллектуальной собственности решила
повысить уровень защищённости своих операционных систем путём шифрования всех
сообщений, передаваемых внутри её локальных сетей. Любое допустимое сообщение в
компании представляет собой строку S, состоящую
исключительно из букв латинского алфавита. Шифрование сообщения осуществляется
в K фаз. На каждой фазе строка S заменяется строкой, в которой сначала располагаются все
буквы строки S, стоящие на позициях с номерами,
являющимися простыми числами (первый блок), а затем — все остальные буквы
(второй блок). Напомним, что число называется простым, если оно — натуральное и
имеет ровно два натуральных делителя. Относительный порядок букв в каждом из
двух блоков остаётся неизменным. Например, строка S = "abcdefgh" на первой фазе
шифруется в строку S = "bcegadfh".
Если осуществляется вторая фаза шифрования, то строка S
примет вид S = "ceafbgdh".
После передачи зашифрованного сообщения по сети оно должно быть дешифровано,
чтобы получатель смог прочитать исходную запись.
Требуется написать программу, осуществляющую
дешифрование заданной строки, являющейся результатом шифрования строки S после K фаз.
Формат входных данных:
В первой строке входного файла содержится натуральное число K (1 £ K £ 100),
вторая строка содержит сообщение S после K фаз шифрования, состоящее из n
(1 £ n £ 255) символов. Символы могут быть как прописными, так и
строчными буквами латинского алфавита. Регистр букв в процессе шифрования
остаётся неизменным.
Формат выходных данных:
Выходной файл должен содержать только одну дешифрованную
строку S.
Пример файлов входных и выходных данных:
INPUT
|
OUTPUT
|
2
CEAFBGDH
|
ABCDEFGH
|
1
BAAAACB
|
ABACABA
|