#include<iostream>
#include<vector>
#include<algorithm>
static std::vector<int>TemporaryContainer;
int FindMid(std::vector<int>& value, int nums, int length)
{
TemporaryContainer.resize(length);
int Pedometer = 0;
for (int i = nums; i < length; i++)
{
TemporaryContainer[Pedometer] = value[i];
Pedometer++;
}
sort(TemporaryContainer.begin(), TemporaryContainer.end());
return TemporaryContainer[(length-1)/2];
}
void solve()
{
int n,k;
std::cin >> n >> k;
std::vector<int>vec(n);
std::vector<int>SumVec;
for (int i = 0; i < n; i++)std::cin >> vec[i];
sort(vec.begin(), vec.end());
int result = 0;
for (int i = 0; i <= n - k; i++)
{
int max = vec[i + k - 1];
int mid = FindMid(vec, i, k);
SumVec.push_back(max - mid);
}
std::cout << *min_element(SumVec.begin(), SumVec.end())<<std::endl;
}
int main()
{
std::cin.tie(0)->sync_with_stdio(0);
int T;
std::cin >> T;
while (T--)
{
solve();
}
}