Задача №1321. Абракадабра
a | a | b | r | a | k |
a | b | r | a | k | a |
a | k | a | a | b | r |
b | r | a | k | a | a |
k | a | a | b | r | a |
r | a | k | a | a | b |
Во время своей работы алгоритм сжатия данных методом «сортировки блока» применяет к блокам данных преобразование, которое определяется следующим образом.
Строка P называется ротацией строки S, если она образована циклическим сдвигом символов S, т.е. если S=a1a2…aN, где ai — i–ый символ строки S, то P=apap+1…aNa1…ap-1, где 1pN. Рассмотрим таблицу M размера NN, строками которой есть все ротации строки S, отсортированные в лексикографическом (словарном) порядке
по возрастанию.
Пусть строка L есть последний столбик таблицы M. Прямое преобразование получает на вход строку S, выдает строку L и число K — номер строки таблицы M, который содержит строку S. (Если таких строк несколько, выдается номер любой из них).
Для S='abraka' таблица M изображена на рисунке. Строка S находится во второй строке таблицы M, L=‘karaab’.
Напишите программу, которая выполняет обратное преобразование, т.е. получает на вход строку L и число K, и выдает строку S.
Первая строка входного файла содержит два целых числа: K и N, 1 ≤ N ≤30000, 1&let;K≤N. Вторая строка содержит N символов строки L — маленьких латинских букв.
Единственная строка выходного файла должна содержать строку S.
2 3 unn
nun
3 7 jubcirt
irtucjb