//! In The Name Of Allah
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define pb push_back
#define pob pop_back
#define make M
#define F first
#define S second
#define all(s) (s).begin(), (s).end()
#define rall(s) s.rbegin(), s.rend()
#define sz(x) (int)x.size()
#define mem(a, b) memset(a, b, sizeof(a))
#define log2(x) 31 - __builtin_clz(x)
#define getbit(n, i) (((n) & (1LL << (i))) != 0)
#define TxtIO \
freopen("sample.in", "r", stdin); \
freopen("sample.out", "w", stdout);
#define Fokinnir_moto_kaj_koris_na \
ios_base::sync_with_stdio(0); \
cin.tie(0); \
cout.tie(0);
#define py cout << "YES" << endl
#define pn cout << "NO" << endl
#define PI acos(-1)
typedef long long ll;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<int, int> pii;
typedef vector<pii> vii;
typedef double dl;
const ll Goriber_INF = 1e18;
const ll Mod = 1e9 + 7;
const ll N = 2e5 + 12;
int n,k;
string s[1005];
bool ok(string a,string b)
{
if(sz(a) < sz(b))return 1;
if(sz(a) > sz(b))return 0;
for(int i = 0; i < sz(a); i++){
if(a[i] < b[i])return 1;
if(a[i] > b[i])return 0;
}
return 1;
}
string f(int i)
{
string la = "";
for(int j = 0; j <= k; j++){
la += s[i+j];
}
return la;
}
void Goriber_solve()
{
cin >> n >> k;
int la = 0;
for(int i = 0; i < n; i++){
int x;
cin >> x;
s[i] = to_string(x);
la = max(la,x);
}
if(k == 0){
cout << la << endl;
return;
}
string ans = s[0];
for(int i = 0; i + k < n; i++){
string la = f(i);
bool ff = ok(ans,la);
if(ff)ans = la;
}
cout << ans << endl;
}
signed main()
{
Fokinnir_moto_kaj_koris_na
int _ = 1,h = 0;
cin >> _;
while (_--)
{
//cout<<"Case "<<++h<<": ";
Goriber_solve();
}
}