#include <bits/stdc++.h>   using namespace std;   void readi(int &x) {     int v = 0, f = 1;     char c = getchar();     while (!isdigit(c) && c !=  - ) c = getchar();     if (c ==  - )       f = -1;     else       v = v * 10 + c -  0 ;     while (isdigit(c = getchar())) v = v * 10 + c -  0 ;     x = v * f;   }   void readll(long long &x) {     long long v = 0ll, f = 1ll;     char c = getchar();     while (!isdigit(c) && c !=  - ) c = getchar();     if (c ==  - )       f = -1;     else       v = v * 10 + c -  0 ;     while (isdigit(c = getchar())) v = v * 10 + c -  0 ;     x = v * f;   }   void readc(char &x) {     char c;     while ((c = getchar()) ==    )       ;     x = c;   }   void writes(string s) { puts(s.c_str()); }   void writeln() { writes(  ); }   void writei(int x) {     if (x < 0) {       putchar( - );       x = abs(x);     }     if (!x) putchar( 0 );     char a[25];     int top = 0;     while (x) {       a[++top] = (x % 10) +  0 ;       x /= 10;     }     while (top) {       putchar(a[top]);       top--;     }   }   void writell(long long x) {     if (x < 0) {       putchar( - );       x = abs(x);     }     if (!x) putchar( 0 );     char a[25];     int top = 0;     while (x) {       a[++top] = (x % 10) +  0 ;       x /= 10;     }     while (top) {       putchar(a[top]);       top--;     }   }   inline long long inc(int &x) { return ++x; }   inline long long inc(long long &x) { return ++x; }   inline long long inc(int &x, long long y) { return x += y; }   inline long long inc(long long &x, long long y) { return x += y; }   inline double inc(double &x, double y) { return x += y; }   inline long long dec(int &x) { return --x; }   inline long long dec(long long &x) { return --x; }   inline long long dec(int &x, long long y) { return x -= y; }   inline long long dec(long long &x, long long y) { return x -= y; }   inline double dec(double &x, double y) { return x -= y; }   inline long long mul(int &x) { return x = ((long long)x) * x; }   inline long long mul(long long &x) { return x = x * x; }   inline long long mul(int &x, long long y) { return x *= y; }   inline long long mul(long long &x, long long y) { return x *= y; }   inline double mul(double &x, double y) { return x *= y; }   inline long long divi(const int &x) {     long long ans, l, r, mid;     ans = 0;     l = 0;     r = 0x3fffffff;     while (l < r) {       mid = (l + r) / 2;       if (mid * mid <= x) {         ans = mid;         l = mid + 1;       } else         r = mid;     }     return ans;   }   inline long long divi(const long long &x) {     long long ans, l, r, mid;     ans = 0;     l = 0;     r = 0x3fffffff;     while (l < r) {       mid = (l + r) / 2;       if (mid * mid <= x) {         ans = mid;         l = mid + 1;       } else         r = mid;     }     return ans;   }   inline long long divi(int &x, long long y) { return x /= y; }   inline long long divi(long long &x, long long y) { return x /= y; }   inline double divi(double &x, double y) { return x /= y; }   inline long long mod(int &x, long long y) { return x %= y; }   inline long long mod(long long &x, long long y) { return x %= y; }   long long n, m, i, j, l, r, ans[200005], f, lst;   map<long long, long long> cnt;   int main() {     readll(n);     for (i = 1; i <= n; i++) {       readll(l);       readll(r);       cnt[l]++;       cnt[r + 1]--;     }     lst = f = 0;     for (__typeof((cnt).begin()) it = (cnt).begin(); it != (cnt).end(); it++) {       ans[f] += (it->first - lst);       lst = it->first;       f += it->second;     }     if ((1) <= ((n)))       for (((i)) = (1); ((i)) <= ((n)); ((i))++) printf( %I64d  , ans[i]);     return 0;   }