#include<bits/stdc++.h>
using namespace std;
#define int long long
bool is_big(string &a, string &b){
if(a.size() > b.size()) return true;
else if(a.size() < b.size()) return false;
else return a > b; // If size is same, then sort lexicographically
}
signed main(){
int t;
cin >> t;
while(t--){
int n, k;
cin >> n >> k;
string ans , tmp;
string s[n];
int sz[n];
for(int i = 0; i < n; i++){
cin >> s[i];
//Max = max(Max, s[i]);
if(is_big(s[i], ans)){
ans = s[i];
}
tmp += s[i];
int id = i - k - 1;
sz[i] = s[i].size();
if(id >= 0) tmp = tmp.substr(sz[id], tmp.size() - (sz[id]));
if(is_big(tmp, ans)) ans = tmp;
// ans = max(ans, tmp);
// if(tmp.size() > ans.size()) ans = tmp;
// else if( tmp.size() == ans.size() and tmp > ans) ans = tmp;
}
//if(k == 0) ans = Max;
cout << ans << "\n";
}
return 0;
}