Вам дана строка s, состоящая из строчных английских букв, и целое число m.
Выберем из данной строки некоторые символы так, чтобы в любой непрерывный подотрезок длины m попал хотя бы один выбранный символ. Заметьте, что здесь выбираются именно позиции символов, а не сами символы.
Затем из символов, которые стоят на выбранных позициях, собирается новая строка. При этом необходимо использовать все символы на выбранных позициях, но их разрешается переставлять как угодно.
Формально, мы выбираем некоторую подпоследовательность индексов 1 ≤ i1 < i2 < ... < it ≤ |s|. Выбранная последовательность должна удовлетворять условию: для любого j, такого что 1 ≤ j ≤ |s| - m + 1, среди выбранных индексов найдется хотя бы один, который принадлежит отрезку [j, j + m - 1], то есть существует k от 1 до t, такое что j ≤ ik ≤ j + m - 1.
Затем мы выбираем некоторую перестановку p выбранных индексов и составляем новую строчку sip1sip2... sipt.
Найдите лексикографически минимальную строку, которую можно получить с помощью описанных действий.
Первая строка входных данных содержит одно число m (1 ≤ m ≤ 100 000).
Во второй строке записана сама строка s. Гарантируется, что строка непустая, состоит из строчных английский букв и её длина не превосходит 100 000. Также, гарантируется, что число m не превосходит длины строки.
Выведите лексикографически минимальную строку, которую можно получить с помощью описанных действий.
3
cbabc
a
2
abcab
aab
3
bcabcbaccba
aaabb
В первом примере мы можем выбрать подпоследовательность {3} и составить строку «a».
Во втором примере мы можем выбрать подпоследовательность {1, 2, 4} и составить из символов на этих позициях строку «aab».
Название |
---|