#include <bits/stdc++.h>
bool check(int N, long long M, int V[], int B) {
    long long sum = 0;
    for (int i = 0; i < B; i++)
    {
        sum += V[i];
        //std::cout << sum;
    }
    if (sum > M) return false;
    for (int i = B; i < N; i++)
    {
        sum += V[i];
        sum -= V[i - B];
        //std::cout << sum;
        if(sum>M) return false;
    }
    /*
    for(int i = 0; i < N - B + 1; i++) {
        sum += V[B + i];
        sum -= V[i];
        if (sum > M) return false;
    }
        */
    return true;
}

int quadri(int N, long long M, int V[]) {
    int l = 0;
    int r = N;
    int test = 3;
    while (l < r && test > 0) {
        int mid = (r - l + 1) / 2 + l;
        //std::cout << "test: " << mid << " " << l << " " << r << "\n";
        if (check(N, M, V, mid)) {
            l = mid;
            //std::cout << "va\n";
        }
        else r = mid - 1;
        test--;
    }
    return l;
}