时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

设字符串 s 是由长度为 n 的小写字母组成的字符串。字符串 s 的循环同构是指通过循环移动得到的所有字符串。具体来说,如果将字符串 s 的第 i 个字符移到字符串的前面,其余字符依次后移,则得到的字符串为循环同构字符串。循环同构字符串的集合记作 \text{Cyclic}(s)

例如,对于字符串 s = \text{,其循环同构字符串集合为:
\text{Cyclic}(\text{
对于字符串 s = \text{,其循环同构字符串集合为:
\text{Cyclic}(\text{

给定一个仅有小写字母字符组成的字符串 s,你的任务是找出 \text{Cyclic}(s) 中字典序第 k 小的字符串并输出。

输入描述:

本题包含多组测试数据。

第一行给出一个正整数 T \; (1 \leq T \leq 10^4),表示数据的组数。

对于每组数据,第一行给出两个整数 n,k \; (1 \leq n \leq 10^5, 1 \leq k \leq n),表示 s 串的长度以及所求的 k

第二行给出一个仅由小写字母表示的长度为 n 的字符串 s,具体意义如题所示。

数据保证 n 的和不超过 10^5

输出描述:

输出 T 行,第 i 行输出第 i 个测试数据所要求的字符串。
示例1

输入

复制
3
4 3
abcc
5 2
aabba
5 1
cbaca

输出

复制
cabc
aabba
acacb