func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, k;   struct Poi {     int x, y, ff;     bool operator<(const Poi &A) const {       return x < A.x || (x == A.x && y < A.y);     }   } pp[(200100)];   int row[(200100)], cntr;   int cnt[(200100)], pre[(200100)];   long long ans[(200100)];   inline void solve() {     sort(pp + 1, pp + 1 + n * 2);     for (int i = 1; i <= n * 2; ++i) {       int y = lower_bound(row + 1, row + 1 + cntr, pp[i].y) - row;       for (int j = y; row[j] < row[y] + k; ++j) {         if (cnt[j] > 0)           ans[cnt[j]] += (long long)(row[j + 1] - row[j]) * (pp[i].x - pre[j]);         pre[j] = pp[i].x;         cnt[j] += pp[i].ff;       }     }     for (int i = 1; i <= n; ++i) cout << ans[i] <<    ;   }   inline void In() {     scanf( %d %d , &n, &k);     for (int i = 1; i <= n; ++i) {       int i1 = i * 2 - 1, i2 = i * 2;       scanf( %d %d , &pp[i1].x, &pp[i1].y);       pp[i1].ff = 1;       row[i1] = pp[i1].y;       row[i2] = row[i1] + k;       pp[i2].y = pp[i1].y;       pp[i2].ff = -1;       pp[i2].x = pp[i1].x + k;     }     sort(row + 1, row + 1 + n * 2);     cntr = 1;     for (int i = 2; i <= n * 2; ++i)       if (row[i] != row[cntr]) row[++cntr] = row[i];   }   int main() {     In();     solve();     return 0;   }   