#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; int N; ll X; ll A[200009]; int main() { cin >> N >> X; for(int i = 1; i <= N; ++i) cin >> A[i]; vector S(2*N+1, 0); for(int i = 1; i <= 2*N; ++i) S[i] = S[i-1]+A[(i-1)%N+1]; ll mx = 0; for(int i = 0; i < N; ++i) { int r = upper_bound(S.begin(), S.end(), S[i]+X)-S.begin(); r--; if(r-i > N) mx = max(mx, S[i+N]-S[i]); else mx = max(mx, S[r]-S[i]); } cout << mx << endl; }