#include <bits/stdc++.h>
using namespace std;
long long n, a[200005];
long long k;
int main() {
  scanf("%d%I64d", &n, &k);
  for (int i = 1; i <= n; i++) scanf("%I64d", &a[i]);
  int p;
  for (p = 1; p <= n && a[p] == 0; p++)
    ;
  p = n - p + 1;
  long long mx = 0;
  for (int i = 1; i <= n; i++) mx = max(mx, a[i]);
  if (p == 2)
    printf("%I64d\n", (k - a[n] - 1) / a[n - 1] + 1);
  else if (p == 3) {
    long long l = 0, r = 1.5e9;
    while (l < r) {
      long long md = (l + r) / 2;
      long long res = md * (md + 1) / 2;
      if (res < 0 || res >= k)
        r = md;
      else {
        res *= a[n - 2];
        if (res < 0 || res >= k)
          r = md;
        else {
          res += md * a[n - 1];
          if (res < 0 || res >= k)
            r = md;
          else if (res + a[n] >= k)
            r = md;
          else
            l = md + 1;
        }
      }
    }
    printf("%I64d\n", r);
  } else {
    p = n - p + 2;
    int ans = 0, i;
    while (mx < k) {
      for (i = p; i <= n; i++) a[i] += a[i - 1], mx = max(mx, a[i]);
      ans++;
    }
    printf("%d\n", ans);
  }
  return 0;
}
