#include <bits/stdc++.h>
#include <vector>

using namespace std;

vector<int> Vg;

long long find_max(int guess){
    long long sum = 0;
    long long max = 0;
    vector<long long> sums;

    for(int i=0; i<guess; i++){
        sum += Vg[i];
    }
    sums.push_back(sum);

    for (int i=guess; i<Vg.size(); i++){
        sum += Vg[i];
        sum -= Vg[i-guess];
        sums.push_back(sum);
    }
    for (int i=0; i<sums.size(); i++){
        if (sums[i] > max) max = sums[i];
    }
    return max;
}

int quadri(int N, long long M, int V[]) {
    Vg.clear();
    for(int i=0; i<=N; i++){
        Vg.push_back(V[i]);
    }
    
    int a = 0;
    int b = N+1;
    while (a != b-1){

        int mid = (a+b)/2;
        long long max = find_max(mid);

        if (max >= M) b = mid;
        else a = mid;
    }
    if(find_max(b) >= M) return a;
    else return b;
}