N,X=map(int,input().split())
A=list(map(int,input().split()))
if sum(A)<=X:
  print(sum(A))
  exit()
v=[0]*(2*N+1)
for i in range(1,N+1):
  v[i]=v[i-1]+A[i-1]
for i in range(1,N+1):
  v[i+N]=v[i+N-1]+A[i-1]
from bisect import bisect_right
ans=0
for i in range(N):
  x=v[i]
  pos=bisect_right(v,x+X)
  z=v[pos-1]-x
  ans=max(ans,z)
print(ans)