Олимпиадный тренинг

Задача . C. Телефонные номера


И где здесь телефонные номера?

Дана строка s из строчных букв английского алфавита и число k. Найдите лексикографически минимальную строку t, имеющую длину k, множество букв которой является подмножеством множества букв s и s лексикографически меньше t.

Гарантируется, что ответ существует.

Обратите внимание, что под множеством букв строки подразумевается множество, а не мультимножество. В частности, множество букв строки abadaba это {a, b, d}.

Строка p считается лексикографически меньше строки q, если p — префикс q, не равный q или существует i такое, что pi < qi и для всех j < i выполнено pj = qj. Например, abc лексикографически меньше abcd , abd лексикографически меньше abec, afa лексикографически не меньше ab и a лексикографически не меньше a.

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

В первой строке через пробел заданы два целых числа n и k (1 ≤ n, k ≤ 100 000) — длина строки s и необходимая длина строки t.

Во второй строке задана строка s, состоящая из n строчных букв английского алфавита.

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

Выведите строку t, удовлетворяющую условиям, описанным выше.

Гарантируется, что ответ существует.

Примечание

В первом примере список строк t длины 3, подходящих под условие, что множество букв t — подмножество множества букв s, таков: aaa, aab, aac, aba, abb, abc, aca, acb, .... Из них лексикографически больше abc: aca, acb, .... Лексикографически минимальная из них — aca.


Примеры
Входные данныеВыходные данные
1 3 3
abc
aca
2 3 2
abc
ac
3 3 3
ayy
yaa
4 2 3
ba
baa

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя