#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#include <iostream>
#include <vector>

using namespace std;

int quadri(int N, long long M, int V[]) {
    int ans = N;
    vector<unsigned long long> prefixSum(N+1);
    prefixSum[0] = 0;
    for(int i=1; i<=N; i++){
        prefixSum[i] = prefixSum[i-1] + V[i-1];
        if(prefixSum[i] > M) ans = i-2;
    }
    //cout << ans << endl;
    int limiteDestro=ans, limiteSinistro=0;
    for( ; ans>=1; ans--){
        limiteSinistro=0;
        limiteDestro=ans;
        //cout << limiteDestro << endl;
        bool found = false;
        while(limiteDestro<=N){
            //cout << prefixSum[limiteDestro] << " " << prefixSum[limiteSinistro-1] << endl;
            if(prefixSum[limiteDestro]-prefixSum[limiteSinistro]>M) {
              found = true;
              break;
            }
            limiteDestro++;
            limiteSinistro++;
        }   
        if(!found) return ans;
    }
    
    return 0;
}