小苯的字符提前
题号:NC281374
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小苯有一个长度为 n 的字符串 s,对于每个位置 i\ (1 \leq i \leq n),他定义 Move(i) 为:把第 i 个字符提到最前面,其余字符按原顺序依次排列接在后面的结果。

例如对于 s =

现在小苯想知道,对于 i1n,字典序第 k 小的 Move(i) 串是什么,请你帮他求一求吧。

输入描述:

每个测试文件内都包含多组测试数据。
第一行一个正整数 T\ (1 \leq T \leq 100),表示测试数据的组数。
接下来对于每组测试数据,输入包含两行。
第一行两个正整数 n,k\ (1 \leq k \leq n \leq 10^6),表示数组 a的长度。
第二行一个长度为n 的字符串 s。(保证 s 只由小写字母构成。)
(保证同一文件的测试数据中,n 的总和不超过 10^6。)

输出描述:

输出包含 T 行,每行一个长度为 n 的字符串,表示当前测试用例的第 k 小字典序 Move 串。
示例1

输入

复制
4
5 2
cbaca
8 4
jsigosfg
8 5
nowcoder
3 1
aaa

输出

复制
acbca
ijsgosfg
onowcder
aaa