import math def is_ok(mi): s = 0 l = 0 for i in range(n): if a[i] + s < mi: m = math.ceil((mi - a[i] - s) / (i + 1)) s += (i + 1) * m l += m return l <= k n, k = map(int, input().split()) a = list(map(int, input().split())) ok, ng = 0, 10 ** 15 + 1 while abs(ok - ng) > 1: mid = (ok + ng) // 2 if is_ok(mid): ok = mid else: ng = mid print(ok)