#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();
	}
}