#include <bits/stdc++.h>
using namespace std;
namespace bit {
long long dat[300010];
void init() {
  for (int i = 0; i < 300010; i++) dat[i] = 0;
}
void add(long long i) {
  for (; i < 300010; i += i & -i) {
    dat[i]++;
  }
}
long long sum(long long i) {
  long long res = 0;
  for (; i > 0; i -= i & -i) {
    res += dat[i];
  }
  return res;
}
}  // namespace bit
vector<long long> v[2 * 100010];
long long n, m;
long long ans[100010];
int main() {
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    long long l, r;
    cin >> l >> r;
    v[r].push_back(l);
  }
  bit::init();
  for (int i = 1; i <= 2 * m; i++) {
    vector<long long> di;
    for (long long j = 1; j * j <= i; j++) {
      if (i % j == 0) {
        di.push_back(j);
        if (j * j != i) {
          di.push_back(i / j);
        }
      }
    }
    for (auto d : di) {
      ans[d] += bit::sum(i - 1) - bit::sum(i - d);
    }
    for (auto l : v[i]) {
      bit::add(l);
    }
  }
  for (int i = 1; i <= m; i++) {
    cout << n - ans[i] << endl;
  }
  return 0;
}
