#include <bits/stdc++.h>
using namespace std;
int amount;
pair<long long, long long> segments[200005];
long long nester[3 * 200005];
int nest_mem = 0;
void nest() {
  for (int i = 1; i <= amount; i++) {
    nester[++nest_mem] = segments[i].first;
    nester[++nest_mem] = segments[i].second;
    nester[++nest_mem] = segments[i].second + 1;
  }
  sort(nester + 1, nester + nest_mem + 1);
  nest_mem = unique(nester + 1, nester + nest_mem + 1) - nester - 1;
  for (int i = 1; i <= amount; i++) {
    segments[i].first =
        lower_bound(nester + 1, nester + nest_mem + 1, segments[i].first) -
        nester;
    segments[i].second =
        lower_bound(nester + 1, nester + nest_mem + 1, segments[i].second) -
        nester;
  }
}
int covered[3 * 200005];
long long counter[3 * 200005];
void solve() {
  nest();
  for (int i = 1; i <= amount; i++)
    covered[segments[i].first]++, covered[segments[i].second + 1]--;
  for (int i = 1; i <= nest_mem; i++) covered[i] += covered[i - 1];
  for (int i = 1; i <= nest_mem; i++)
    counter[covered[i]] += nester[i + 1] - nester[i];
  for (int i = 1; i <= amount; i++) printf("%lld ", counter[i]);
}
int main() {
  scanf("%d", &amount);
  for (int i = 1; i <= amount; i++)
    scanf("%lld %lld", &segments[i].first, &segments[i].second);
  solve();
}
