eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Абракадабра

Абракадабра

Во время своей работы алгоритм сжатия данных методом "сортировки блока" применяет к блокам данных преобразование, которое определяется следующим образом.

Строка P называется ротацией строки S, если она образована циклическим сдвигом символов S, то есть если S=a1a2…aN, где aii–ый символ строки S, то P = apap+1…aNa1…ap-1, где 1 ≤ p ≤ N. Рассмотрим таблицу M размером N×N, строками которой являются все ротации строки S, отсортированные в лексикографическом (словарном) порядке по возрастанию.

Пусть строка L явялется последним столбиком таблицы M. Прямое преобразование получает на вход строку S, видаёт строку L и число K — номер строки таблицы M, содержащий строку S. (Если таких строк несколько, выдаётся номер любой из них).

Для S = 'abraka' таблицу M изображено на рисунке. Строка S находится во второй строке таблицы M, L = 'karaab'.

Напишите программу, которая выполняет обратное преобразование, то есть получает на вход строку L и число K, и выводит строку S.

Example

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

Первая строка входного файла содержит два целыих числа: K и N, 1 ≤ N ≤ 30000, 1 ≤ K ≤ N. Вторая строка содержит N символов строки L — маленькие латинские буквы.

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

Единственная строка выходного файла должна содержать строку S.

Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
2 6
karaab
Выходные данные #1
abraka
Источник УОИ 2002