#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define bug(a) cout<< #a << " : " << a <<endl;
#define bug2(a, b) cout<< #a << " : " << a << " " << #b << " : " << b << endl;
void solve(int cs){
int n, k;
cin >> n >> k;
string s;
if(n == 0){
return;
}
cin >> s;
if(k == n){
cout << 0 << '\n';
return;
}
vector<int> idx[10];
for(int i = 0;i < n;i++){
idx[s[i] - '0'].push_back(i);
}
for(int i = 0;i <= 9;i++){
sort(idx[i].rbegin(), idx[i].rend());
}
// vector<bool> ok(n, true);
string ans = "";
int cur_pos = -1;
int sz = n - k;
int cnt = 0;
while(k && ans.size() < sz){
for(int i = 9;i >= 0;i--){
while(idx[i].size() && idx[i].back() <= cur_pos) idx[i].pop_back();
if(idx[i].size()){
int b = idx[i].back();
int to_del = 1000;
if(cur_pos == -1) to_del = b;
else to_del = (b - cur_pos) - 1;
if(ans.size() + (n - b) >= sz && k >= to_del){
ans += i + '0';
//bug(ans)
cur_pos = b;
//bug2(k, (b - cur_pos))
k -= to_del;
// bug2(k, b)
// bug(ans.size())
idx[i].pop_back();
if(ans.size() == sz) break;
}
}
}
}
while(ans.size() < sz){
cur_pos++;
ans += s[cur_pos];
}
cout << ans << '\n';
}
int main(){
ios_base::sync_with_stdio(false);cin.tie(0);
cout.tie(0);
int tc = 1;
cin >> tc;
for(int cs = 1; cs <= tc; cs++){
solve(cs);
}
}