N,C=map(int,input().split())
position=[]
for _ in range(N) :
position.append(int(input()))
position.sort()
left=0
right=position[-1]-position[0]
mid=0
def p(C,distance) :
count=1
positions=position[0]
for i in position :
if i-positions>=distance :
count+=1
positions=i
if count>=C :
return True
return False
while left < right :
mid=(left+right+1)//2
if p(C,mid) :
left=mid
else :
right=mid+1
print(right)