#include <bits/stdc++.h>
 
#define forn(i, n) for (int i = 0; i < (int)(n); i++)
#define for1(i, n) for (int i = 1; i < (int)(n); i++)
#define fore(i, l, r) for (int i = (int)(l); i <= (int)(r); i++)
#define ford(i, n) for (int i = (int)(n) - 1; i >= 0; i--)
#define pb push_back
#define eb emplace_back
#define fi first
#define se second
#define mp make_pair
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
 
using namespace std;
 
typedef long long ll;
typedef unsigned long long ull;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef vector<vi> vvi;
typedef vector<vll> vvll;
typedef set<int> si;
typedef pair<int, int> pii;
typedef set<pii> spii;
typedef si::iterator sit;
 
int T, N, C;
int a[100000];
 
int check(int min_val) {
    int pre = a[0];
    int cnt = 1;
    fore(i, 1, N - 1) {
        if (a[i] - pre >= min_val) {
            ++cnt;
            pre = a[i];
            if (cnt == C) return 1;
        }
    }
    
    return 0;
}
 
int main() {
    scanf("%d", &T);
    
    forn(t, T) {
        scanf("%d %d", &N, &C);
    
        forn(i, N) scanf("%d", a + i);
        
        sort(a, a + N);
        
        int lo = 0, hi = a[N-1];
        int mid;
        
        while (hi - lo > 1) {
            mid = (hi + lo) >> 1;
            if (check(mid)) {
                lo = mid;
            } else hi = mid;
        }
        printf("%d\n", lo);
    }
	
	return 0;
}