Дана строка \(s\), состоящая из строчных латинских букв.
Можно применять следующую операцию:
- выбрать один символ (от 'a' до 'z'), который хотя бы один раз встречается в строке. И все такие символы в строке заменить на предыдущий в алфавитном порядке по циклу. Например, все 'c' заменить на 'b' или все 'a' заменить на 'z'.
Задано число \(k\) — максимальное количество операций, которое можно совершить. Найдите минимальную лексикографически строку, которую можно получить, совершив не более \(k\) операций.
Строка \(a=a_1a_2 \dots a_n\) лексикографически меньше строки \(b = b_1b_2 \dots b_n\), если существует такой индекс \(k\) (\(1 \le k \le n\)), что \(a_1=b_1\), \(a_2=b_2\), ..., \(a_{k-1}=b_{k-1}\), но \(a_k < b_k\).
Выходные данные
Для каждого набора входных данных выведите лексикографически минимальную строку, которую можно получить из строки \(s\), применив не более чем \(k\) операций.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
4 3 2 cba 4 5 fgde 7 5 gndcafb 4 19 ekyv
|
aaa
agaa
bnbbabb
aapp
|