#include <stdio.h>
#include <assert.h>
#include <stdlib.h>

static FILE *fr, *fw;

// Declaring variables
static int N;
static long long M;
static int* V;
static int B;

// Declaring functions
#include<bits/stdc++.h>

using namespace std;
using ll = long long;

int quadri(int n, ll m, int V[]) {
    
    vector<ll> v(n);
    for(int i = 0; i < n; i++) v[i] = 1ll*V[i];
    
    int lo = 0, hi = n+1;
    
    while(lo+1 < hi){
		int mid = (lo+hi)/2;
	
		bool ok = 1;
		
		ll sum = 0;
		for(int i = 0; i < mid; i++) {
			sum += v[i];
		}
		
		ok = sum < m;
		
		for(int i = 0; i+mid+1 < n and ok; i++) {
			sum -= v[i];
			sum += v[i+mid+1];
			ok = sum < m;
		}
		
		if(ok) {
			lo = mid;
		} else {
			hi = mid;
		}
	}
	
	return lo;
}

#ifndef EVAL

int main() {
	fr = stdin;
	fw = stdout;

	// Iterators used in for loops
	int i0;

	// Reading input
	fscanf(fr, "%d %lld", &N, &M);
	V = (int*)malloc(N * sizeof(int));
	for (i0 = 0; i0 < N; i0++) {
	    fscanf(fr, "%d", &V[i0]);
	}

	// Calling functions
	B = quadri(N, M, V);

	// Writing output
	fprintf(fw, "%d\n", B);
	
	fclose(fr);
	fclose(fw);
	return 0;
}

#endif
