#include <bits/stdc++.h>
using namespace std;
vector<long long> v;
map<long long, long long> mp;
struct dat {
  long long lef, righ;
} a[500005];
long long val[500005], smen[500005], fr[500005];
int main() {
  long long n, i, vf, act;
  cin >> n;
  for (i = 1; i <= n; i++) {
    cin >> a[i].lef >> a[i].righ;
    v.push_back(a[i].lef);
    v.push_back(a[i].righ + 1);
  }
  sort(v.begin(), v.end());
  vf = 1;
  mp[v[0]] = 1;
  val[1] = v[0];
  for (i = 1; i < v.size(); i++) {
    if (v[i] != v[i - 1]) {
      vf++;
      mp[v[i]] = vf;
      val[vf] = v[i];
    }
  }
  for (i = 1; i <= n; i++) {
    smen[mp[a[i].lef]]++;
    smen[mp[a[i].righ + 1]]--;
  }
  act = smen[1];
  for (i = 2; i <= vf; i++) {
    fr[act] += val[i] - val[i - 1];
    act += smen[i];
  }
  for (i = 1; i <= n; i++) cout << fr[i] << ' ';
  return 0;
}
