#include <bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
const int N = 2e5 + 5, M = 1e5 + 5;
int n, m, x, sum, a77777777[105];
int main() {
  scanf("%d%d", &n, &m);
  while (n--) {
    scanf("%d", &x);
    sum += x;
    int dif = sum - m, ans = 0;
    for (int i = 100; ~i && dif > 0; --i) {
      if (!a77777777[i]) continue;
      if (dif > a77777777[i] * i) {
        ans += a77777777[i];
        dif -= (a77777777[i] * i);
      } else {
        ans += ((dif + i - 1) / i);
        break;
      }
    }
    ++a77777777[x];
    printf("%d ", ans);
  }
  return 0;
}
