#include<bits/stdc++.h>
using namespace std;
bool check(int cows,long long int positions[],int n,long long int distance){
int count = 1;
long long last_position = positions[0];
for(int i=1;i<n;i++){
if(positions[i] - last_position >= distance){
last_position = positions[i];
count++;
}
if(count == cows){
return true;
}
}
return false;
}
int main() {
int t;
cin>>t;
while(t--){
int n,c;
cin>>n>>c;
long long int positions[n];
for(int i=0;i<n;i++){
cin>>positions[i];
}
sort(positions,positions+n);
long long int start = 0;
long long int end = positions[n-1]-positions[0];
long long int ans = -1;
while(start<=end){
long long int mid = start + (end-start)/2;
if(check(c,positions,n,mid)){
ans = mid;
start = mid+1;
}else{
end = mid - 1;
}
}
cout<<ans<<endl;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKYm9vbCBjaGVjayhpbnQgY293cyxsb25nIGxvbmcgaW50IHBvc2l0aW9uc1tdLGludCBuLGxvbmcgbG9uZyBpbnQgZGlzdGFuY2UpewogICAgaW50IGNvdW50ID0gMTsKCWxvbmcgbG9uZyBsYXN0X3Bvc2l0aW9uID0gcG9zaXRpb25zWzBdOwoKCWZvcihpbnQgaT0xO2k8bjtpKyspewoJCWlmKHBvc2l0aW9uc1tpXSAtIGxhc3RfcG9zaXRpb24gPj0gZGlzdGFuY2UpewoJCQlsYXN0X3Bvc2l0aW9uID0gcG9zaXRpb25zW2ldOwoJCQljb3VudCsrOwoJCX0KCgkJaWYoY291bnQgPT0gY293cyl7CgkJCXJldHVybiB0cnVlOwoJCX0KCX0KCXJldHVybiBmYWxzZTsKfQppbnQgbWFpbigpIHsKCglpbnQgdDsKICAgIGNpbj4+dDsKICAgIHdoaWxlKHQtLSl7CiAgICAgICAgaW50IG4sYzsKICAgICAgICBjaW4+Pm4+PmM7CiAgICAgICAgbG9uZyBsb25nIGludCBwb3NpdGlvbnNbbl07CiAgICAgICAgZm9yKGludCBpPTA7aTxuO2krKyl7CiAgICAgICAgICAgIGNpbj4+cG9zaXRpb25zW2ldOwogICAgICAgIH0KICAgICAgICBzb3J0KHBvc2l0aW9ucyxwb3NpdGlvbnMrbik7CiAgICAgICAgbG9uZyBsb25nIGludCBzdGFydCA9IDA7CiAgICAgICAgbG9uZyBsb25nIGludCBlbmQgPSBwb3NpdGlvbnNbbi0xXS1wb3NpdGlvbnNbMF07CiAgICAgICAgbG9uZyBsb25nIGludCBhbnMgPSAtMTsKICAgICAgICB3aGlsZShzdGFydDw9ZW5kKXsKICAgICAgICAgICAgbG9uZyBsb25nIGludCBtaWQgPSBzdGFydCArIChlbmQtc3RhcnQpLzI7CiAgICAgICAgICAgIGlmKGNoZWNrKGMscG9zaXRpb25zLG4sbWlkKSl7CiAgICAgICAgICAgICAgICBhbnMgPSBtaWQ7CiAgICAgICAgICAgICAgICBzdGFydCA9IG1pZCsxOwogICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgIGVuZCA9IG1pZCAtIDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY291dDw8YW5zPDxlbmRsOwogICAgfQoJcmV0dXJuIDA7Cgp9