#include <bits/stdc++.h>
using namespace std;
struct St {
  long long l;
  long long r;
  long long sub;
  bool operator<(const St& st) const { return sub > st.sub; }
};
priority_queue<St> q;
vector<St> end_list;
long long a[100001] = {0};
signed main() {
  long long n, m;
  cin >> n >> m;
  for (long long i = 0; i < n; i++) {
    St st;
    cin >> st.l >> st.r;
    st.sub = st.r - st.l;
    q.push(st);
  }
  for (long long i = 0; i < m; i++) {
    long long step = i + 1;
    while (q.size() > 0) {
      const St& top = q.top();
      if (top.sub + 1 < step) {
        for (long long i = top.l; i <= top.r; i++) {
          a[i]++;
        }
        q.pop();
      } else {
        break;
      }
    }
    long long cnt = 0;
    for (long long j = step; j <= m; j += step) {
      cnt += a[j];
    }
    cnt += q.size();
    cout << cnt << endl;
  }
}
