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

static FILE *fr, *fw;

// Declaring variables
static int N;
static long long M;
static int* V;
static int B;

using ll = long long;

int quadri(int N, long long M, int* V) {
  int l = 0;
  int r = N-1;

  vector<ll> pfx(N);
  pfx[0] = V[0];
  for (int i = 1; i < N; ++i) pfx[i] = pfx[i-1]+(ll)V[i];
  
  ll sum = pfx[N-1];
  int B = N;
  
  while (sum > M && l <= r) {
    if (V[l] < V[r]) {
      sum -= (ll)V[l];
      ++l;
    }
    else {
      sum -= (ll)V[r];
      --r;
    }
    --B;
  }
  if (l > r) return 0;
  return B;

  // 1 2 3 4
}

#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 // funny number