n,k = map(int,input().split()) a = list(map(int,input().split())) ok = 0; ng = max(a)+k+1 while ng-ok>1: mid = (ok+ng)//2 b = a[:]; c = s = 0 for i in range(1,n+1): d = mid-a[i-1]-s if d<=0: continue r = (d-1+i)//i c += r; s += r*i if c<=k: ok = mid else: ng = mid print(ok)