#include <bits/stdc++.h>
using namespace std;
int maxsom(int mid, int N, int* V){
    int max_somma;
    for (int i=0; i<mid; i++){
        max_somma += V[i];
    }
    for (int i =1; i<N-mid+1;i++){
        // cerr<<max_somma<<endl;
        int temp_somma = max_somma;
        max_somma = max_somma - V[i-1] + V[i+mid-1];
        max_somma = max(max_somma, temp_somma);
        
    }
    return max_somma;
}

int quadri(int N, long long M, int* V){

    int start = 0;
    int end = N;
    int mid = 0;
    int lastmid = 0;
    
    if (N == 1) return V[0]<=M;
    while (start<end){
        mid = (end+start)/2;
        
        int temp = maxsom(mid, N, V);
        // cout<<start<<" "<<mid<< " "<<end<<endl;
        
        if (temp <=M){
            start = mid;
        }
        if (temp >M){
            end = mid;
        }
        if (start == end-1){
            if (maxsom(end, N, V)<=M) return end;
        }
        
        
        
        
        
    }
    
    return mid;
}