#include <bits/stdc++.h>
using namespace std;
typedef long double ld;
template <typename T>
inline void setmin(T& x, T y) {
  if (y < x) x = y;
}
template <typename T>
inline void setmax(T& x, T y) {
  if (y > x) x = y;
}
template <typename T>
inline T gcd(T a, T b) {
  while (b) swap(a %= b, b);
  return a;
}
const long long MOD = 1e9 + 7;
const int INF = 0x3f3f3f3f;
const long long LL_INF = 0x3f3f3f3f3f3f3f3f;
const ld PI = acos(-1);
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  int n;
  cin >> n;
  map<long long, vector<int>> M;
  vector<long long> res(n + 1);
  for (int i = 0; i < n; i++) {
    long long a, b;
    cin >> a >> b;
    M[a].push_back(0);
    M[b].push_back(1);
  }
  long long ilosc = 0;
  long long poprz = -1;
  for (auto& i : M) {
    if (poprz == -1) {
      poprz = i.first + 1;
    } else {
      long long dl = (i.first - poprz);
      res[ilosc] += max(0ll, dl);
      poprz = i.first + 1;
    }
    for (auto& j : i.second) {
      if (j == 0) {
        ilosc++;
      }
    }
    res[ilosc]++;
    for (auto& j : i.second) {
      if (j == 1) {
        ilosc--;
      }
    }
  }
  for (int i = 1; i <= n; i++) {
    cout << res[i] << " ";
  }
  return 0;
}
