#include<bits/stdc++.h>
using namespace std;
vector<int> tab;
bool czy(int x,int n,int k)
{
vector<int> lis;
vector<int> dp(k+3,0);
for(int i = 0;i < n;++i)
{
if(tab[i] >= x)
{
lis.push_back(1);
}
else
{
lis.push_back(0);
}
}
for(int i = n-1;i >= 0;i--)
{
int j = i%k;
dp[j] = max(dp[j],dp[j+1] + lis[i]);
}
//cout << dp[k-1] << endl;
if(dp[0] >= (n%k)/2 + ((n%k) == 0 ? n : 0)) return true;
return false;
//cout << dp[k-1] << endl;
}
int main()
{
int t;
cin >> t;
for(int q = 0;q < t;++q)
{
int n,k,x;
cin >> n >> k;
for(int i = 0;i < n;++i)
{
cin >> x;
tab.push_back(x);
}
//cout << czy(3,n,k);
int l = 0,p=1000000003,mid;
while(l < p)
{
mid = (l+p+1)/2;
if(czy(mid,n,k) == true)
{
l = mid;
}
else
{
p = mid-1;
}
}
cout << l << endl;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZlY3RvcjxpbnQ+IHRhYjsKCmJvb2wgY3p5KGludCB4LGludCBuLGludCBrKQp7Cgl2ZWN0b3I8aW50PiBsaXM7Cgl2ZWN0b3I8aW50PiBkcChrKzMsMCk7Cglmb3IoaW50IGkgPSAwO2kgPCBuOysraSkKCXsKCQlpZih0YWJbaV0gPj0geCkKCQl7CgkJCWxpcy5wdXNoX2JhY2soMSk7CgkJfQoJCWVsc2UKCQl7CgkJCWxpcy5wdXNoX2JhY2soMCk7CgkJfQoJfQoJZm9yKGludCBpID0gbi0xO2kgPj0gMDtpLS0pCgl7CgkJaW50IGogPSBpJWs7CgkJZHBbal0gPSBtYXgoZHBbal0sZHBbaisxXSArIGxpc1tpXSk7Cgl9CgkvL2NvdXQgPDwgZHBbay0xXSA8PCBlbmRsOwoJaWYoZHBbMF0gPj0gKG4laykvMiArICgobiVrKSA9PSAwID8gbiA6IDApKSByZXR1cm4gdHJ1ZTsKCXJldHVybiBmYWxzZTsKCS8vY291dCA8PCBkcFtrLTFdIDw8IGVuZGw7Cn0KCmludCBtYWluKCkKewoJaW50IHQ7CgljaW4gPj4gdDsKCWZvcihpbnQgcSA9IDA7cSA8IHQ7KytxKQoJewoJCWludCBuLGsseDsKCQljaW4gPj4gbiA+PiBrOwkKCQlmb3IoaW50IGkgPSAwO2kgPCBuOysraSkKCQl7CgkJCWNpbiA+PiB4OwoJCQl0YWIucHVzaF9iYWNrKHgpOwoJCX0KCQkvL2NvdXQgPDwgY3p5KDMsbixrKTsKCQlpbnQgbCA9IDAscD0xMDAwMDAwMDAzLG1pZDsKCQl3aGlsZShsIDwgcCkKCQl7CgkJCW1pZCA9IChsK3ArMSkvMjsKCQkJaWYoY3p5KG1pZCxuLGspID09IHRydWUpCgkJCXsKCQkJCWwgPSBtaWQ7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlwID0gbWlkLTE7CgkJCX0KCQl9CgkJY291dCA8PCBsIDw8IGVuZGw7Cgl9Cn0K