#include<bits/stdc++.h>
#define LL long long
#define PLL pair<LL,LL>
using namespace std;

int N,M;
int bit[100010] = {0}, ans[100010] = {0};
vector<pair<LL, PLL>> r;

void update(int hi, int add){
    while(hi <= M) bit[hi] += add, hi += hi & -hi;
}

int query(int x){
    int ret = 0;
    while(x) ret += bit[x], x -= x & -x;
    return ret;
}

int main(){
    cin >> N >> M;
    for(int i=0,li,ri; i<N;i++) cin >> li >> ri, r.push_back({ri-li+1, {li,ri}});
    sort(r.begin(), r.end());

    for(int d=1,i=0; d<=M; d++){
        for(i; r[i].first < d && i<N; i++){
            update(r[i].second.first, 1);
            update(r[i].second.second+1, -1);
        }
        ans[d-1] += N-i;
        for(int j=d; j<=M; j+=d){
            ans[d-1] += query(j);
        }
    }
    for(int i=0; i<M; i++) cout << ans[i] << endl;

    return 0;
}
