#include <bits/stdc++.h>
using namespace std;

int quadri(int N, long long M, int V[]) {
    int B = 0;

    // Trovo la prima finestra che non supera
    long long cs = 0;
    int top = 0;
    for (int i = 0; i < N; ++i) {
        top = i;
        if (cs + static_cast<long long>(V[i]) <= M) {
            cs += static_cast<long long>(V[i]);
            B++;
            continue;
        }
        break;
    }

    // Caso in cui posso prendere tutto
    if (B == N) return B;

    // Altrimenti scorro la finestra e riduco B quando CS supera M
    int bt = 0;
    for (int i = top; i < N && B != 0; ++i) {
        cs += static_cast<long long>(V[i]);
        cs -= static_cast<long long>(V[bt]);
        bt++;

        while (cs > M) {
            cs -= static_cast<long long>(V[bt]);
            bt++;
            B--;
        }
    }

    return B;
}
