N,K=map(int,input().split()) A=list(map(int,input().split())) L,R=0,10**18 while L>1 C=0 D=0 for i in range(N): V=(M-(A[i]+C)+i)//(i+1) if V>0: C+=V*(i+1) D+=V if D<=K: L=M else: R=min(R-1,M) print(L)