import java.util.*;
import java.lang.*;

class Main
{
 public static boolean agg(int[] input,int d,int cows)
	{
		int f=input[0];
		int i=1;
		cows=cows-1;;
		while(cows>0&&i<input.length-1)
		{
			if(input[i]-f>=d) {
				cows--;
				f=input[i];
			}
				i++;
		}
		if(cows<=0)
		{
			return true;
		}else {
			return false;
		}
	}
	
	
	
	
	public static void main (String[] args) throws java.lang.Exception
	{
		Scanner sc=new Scanner(System.in);
		int t=sc.nextInt();
		while(t-->0)
		{
			int no=sc.nextInt();
			int cows=sc.nextInt();
			int input[]=new int[no];
			for(int i=0;i<no;i++)
			{
				input[i]=sc.nextInt();
			}
			Arrays.parallelSort(input);
			int l=input[no-1]-input[0];
			int dis[] =new int [l];
			for(int i=0;i<l;i++)
			{
				dis[i]=i+1;
			}
			
			
	        int si=0;
	        int ei=dis.length-1;
			int mid=(si+ei)/2;
			int ans=-1;
			while(si<=ei)
			{
				mid=(si+ei)/2;
			
				int d=dis[mid];
			//System.out.println(d);
				boolean a=agg(input,d,cows);
				if(a)
				{
					ans=d;
					si=mid+1;
					
				}else {
					ei=mid-1;
				}
			}
			
			
			
			System.out.println(ans);
		}
	}
}