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

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) {
    --B;
    if (V[l] < V[r]) {
      sum -= (ll)V[l];
      ++l;
    }
    else {
      sum -= (ll)V[r];
      --r;
    }
    while (r < N-1 && V[r+1] > V[l]) {
      sum += (ll)V[r+1];
      sum -= (ll)V[l];
      ++l;
      ++r;
    }
    while (l > 0 && V[l-1] > V[r]) {
      sum += (ll)V[l-1];
      sum -= (ll)V[r];
      --l;
      --r;
    }
  }
  if (l > r) return 0;
  return B;
}

#ifndef EVAL
int main() {
  int N; ll M;
  cin >> N >> M;
  
  int* V = (int*)malloc(N * sizeof(int));
  for (int i = 0; i < N; ++i) cin >> V[i];

  cout << quadri(N, M, V) << endl;
}
#endif