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

int quadri(int N, long long M, int V[]) {
    // Scrivete qui la vostra soluzione
    int B = 42;
    int max_v = 0;
    for(int i  = 0; i<N; i++){
      max_v = max(max_v, V[i]);
    }
    if (max_v > M) return 0;
    long long l = 0; long long r = N;
    vector<int> prefisse(N, 0);
    prefisse[0] = V[0];
    for(int i = 0; i<N-1; i++){
      prefisse[i+1] = prefisse[i] + V[i+1];
    }
    if (prefisse[N-1] <= M) return N;
    while(l < r){
      long long mid = (l+r)/2;
      long long somma = 0;
      long long max_somma = 0;
      for(int i = 0; i<N-mid; i++){
        somma = prefisse[i+mid] - prefisse[i];
        max_somma = max(somma, max_somma);
      }
      if (max_somma > M){
        r = mid-1;
      }
      else{
        B = mid;
        l = mid+1;
      }
      
    }

    long long mid = (l+r)/2;
    long long somma = 0;
    long long max_somma = 0;
    for(int i = 0; i<N-mid; i++){
      somma = prefisse[i+mid] - prefisse[i];
      max_somma = max(somma, max_somma);
    }
    if (max_somma > M){
      r = mid-1;
    }
    else{
      B = mid;
      l = mid+1;
    }
  
    return B;
}