#include <bits/stdc++.h>
using namespace std;
const long double EPS = 1e-9, PI = acosl(-1.);
const int MOD = 1e9 + 7, MOD2 = 2e9 + 11;
const long long int INF = 0x3f3f3f3f3f3f3f3f;
const int N = 1e5 + 5;
long long int ans[200005];
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0);
  vector<pair<long long int, int>> endp;
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    long long int a, b;
    cin >> a >> b;
    endp.push_back({a, 0});
    endp.push_back({b, 1});
  }
  sort(endp.begin(), endp.end());
  long long int oldseg = -INF;
  int cont = 0;
  char flag = true, flag2 = true;
  for (int i = 0; i < (2 * n); i++) {
    if (endp[i].first != oldseg) {
      ans[cont] += (endp[i].first - oldseg - 1);
      if (endp[i].second)
        cont--;
      else
        cont++;
      oldseg = endp[i].first;
    } else {
      if (endp[i].second)
        cont--;
      else
        cont++;
    }
  }
  flag = true;
  oldseg = endp[0].first;
  cont = 0;
  int u = 0;
  endp.push_back({INF, INF});
  while (u < (2 * n)) {
    if ((u < (2 * n)) && (endp[u].second == 1)) {
      ans[cont]++;
      while ((u < (2 * n)) && (oldseg == endp[u].first)) u++, cont--;
      oldseg = endp[u].first;
      continue;
    }
    while ((u < (2 * n)) && (oldseg == endp[u].first) &&
           (endp[u].second == 0)) {
      cont++;
      u++;
    }
    ans[cont]++;
    while (u < (2 * n) && oldseg == endp[u].first) u++, cont--;
    oldseg = endp[u].first;
  }
  for (int i = 1; i <= n; i++) cout << ans[i] << " ";
  return 0;
}
