D. Недешёвая строка
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Пусть $$$s$$$ — строка из строчных латинских букв. Eё цена — это сумма номеров букв, которые в неё входят. Например, цена строки abca равна $$$1+2+3+1=7$$$.

Задана строка $$$w$$$ и число $$$p$$$. Удалите из $$$w$$$ наименьшее количество букв, чтобы её цена стала меньше или равна чем $$$p$$$ и выведите получившуюся строку. Обратите внимание, что получившаяся строка может быть пустой. Удалять можно произвольные буквы, они не обязаны идти подряд. Если цена заданной строки $$$w$$$ меньше или равна $$$p$$$, то ничего удалять не надо и необходимо вывести $$$w$$$.

Обратите внимание, что при удалении буквы из $$$w$$$ порядок остальных букв сохраняется. Например, при удалении буквы e из строки test получится tst.

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

В первой строке входных данных задано целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных в тесте. Далее следуют описания $$$t$$$ наборов входных данных.

Каждый набор входных данных состоит из двух строк.

Первая из них это строка $$$w$$$, она непустая и состоит из строчных латинских букв. Её длина не превосходит $$$2\cdot10^5$$$.

Вторая строка содержит целое число $$$p$$$ ($$$1 \le p \le 5\,200\,000$$$).

Гарантируется, что сумма длин строк $$$w$$$ по всем наборам входных данных не превышает $$$2 \cdot 10^5$$$.

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

Выведите ровно $$$t$$$ строк, $$$i$$$-я из них должна содержать ответ на $$$i$$$-й набор входных данных. Выведите наиболее длинную строку, которая получена из $$$w$$$ удалением букв такую, что её цена меньше или равна $$$p$$$. Если ответов несколько, то выведите любой из них.

Обратите внимание, что пустая строка — это один из возможных ответов. В таком случае просто выведите пустую строку в выходные данные.

Пример
Входные данные
5
abca
2
abca
6
codeforces
1
codeforces
10
codeforces
100
Выходные данные
aa
abc

cdc
codeforces