def Bisect_Int(ok,ng,is_ok): while abs(ok-ng)>1: mid=(ok+ng)//2 if is_ok(mid): ok=mid else: ng=mid return ok N,K=map(int,input().split()) A=list(map(int,input().split())) D=[b-a for a,b in zip(A,A[1:])] D.append(2*N-sum(D)) mi=min(D) i=D.index(mi) D=D[i:]+D[:i] for i in range(K): D[i]//=2 C=[0]+D for i in range(1,K+1): C[i]+=C[i-1] def is_ok(d): for s in range(C[1]): cur=s for k in range(1,K): cur+=d if cur