#include <bits/stdc++.h>
using namespace std;
int main() {
  int q, x;
  cin >> q >> x;
  vector<int> qs(q);
  vector<int> v(x, 0);
  for (int i = 0; i < q; i++) {
    int yj;
    cin >> yj;
    yj %= x;
    qs[i] = yj;
    v[yj]++;
  }
  int min = 0;
  for (int i = 1; i < x; i++) {
    if (v[i] * x + i < v[min] * x + min) min = i;
  }
  vector<int> ans;
  ans.push_back(v[min] * x + min);
  for (int i = q - 1; i >= 0; i--) {
    int yj = qs[i];
    v[yj]--;
    if (v[yj] * x + yj < v[min] * x + min) min = yj;
    ans.push_back(v[min] * x + min);
  }
  reverse(ans.begin(), ans.end());
  for (int i = 1; i < ans.size(); i++) {
    cout << ans[i] << endl;
  }
}
