#include <bits/stdc++.h>
using namespace std;
const int N = (1e6 + 5);
const int mod = 1e9 + 7;
long long int n, x, q, m;
long long int pow_mod_m(long long int a, long long int n) {
  if (!n) return 1;
  long long int pt = pow_mod_m(a, n / 2);
  pt *= pt;
  pt %= mod;
  if (n & 1) pt *= a, pt %= mod;
  return pt;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  int ts = 1;
  while (ts--) {
    cin >> q >> x;
    map<int, int> mp;
    long long int mx;
    for (long long int i = 1; i < q + 1; ++i) {
      long long int z;
      cin >> z;
      mp[z]++;
      if (i == 1) {
        if (z != 0) {
          cout << 0 << "\n";
          mx = 0;
        } else {
          cout << 1 << "\n";
          mx = 1;
        }
      } else {
        if (mx < z) {
          if (llabs(mx - z) % x == 0) {
            mp[mx]++;
            mp[z]--;
            while (mp[mx]) mx++;
          } else {
            long long int val = llabs(mx - z) / x;
            while (mp[z - val * x]) val--;
            mp[z - val * x]++;
          }
        } else if (mx == z) {
          while (mp[mx]) mx++;
        } else {
          if (llabs(mx - z) % x == 0) {
            mp[mx]++;
            mp[z]--;
            while (mp[mx]) mx++;
          } else {
            long long int val = llabs(mx - z) / x + 1;
            while (mp[z + val * x]) val++;
            mp[z + val * x]++;
          }
        }
        cout << mx << "\n";
      }
    }
  }
  return 0;
}
