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)