#include <bits/stdc++.h>
using namespace std;
const int N = 4e5 + 5;
struct P {
  int num, id;
  bool operator<(const P &t) const {
    if (num != t.num) return num > t.num;
    return id > t.id;
  }
};
int num[N], t[N];
int main() {
  int q, x, y;
  scanf("%d%d", &q, &x);
  priority_queue<P> qu;
  for (int i = 0; i < x; i++) qu.push({0, i});
  for (int i = 0; i < q; i++) {
    scanf("%d", &y);
    qu.push({++num[y % x], y % x});
    t[y % x]++;
    while (!qu.empty()) {
      P u = qu.top();
      if (t[u.id]) {
        qu.pop();
        t[u.id]--;
      } else {
        printf("%d\n", u.num * x + u.id);
        break;
      }
    }
  }
  return 0;
}
