#include <bits/stdc++.h>
using namespace std;
int __gcd(int a, int b) { return (a % b) ? __gcd(b, a % b) : b; }
void solve() {
  long long n;
  cin >> n;
  stack<pair<long long, long long int>> st;
  for (long long int i = 0, a, b; i < n; i++) {
    cin >> a >> b;
    st.push({a, -1});
    st.push({b, 1});
  }
  vector<pair<long long int, int>> vec(st.size());
  for (int i = 0; i < (int)vec.size(); i++) {
    vec[i] = st.top();
    st.pop();
  }
  sort(vec.begin(), vec.end());
  long long int arr[n + 1];
  fill(arr, arr + n + 1, 0);
  long long int pp = vec[0].first;
  long long int cp;
  int counter = 0;
  for (int i = 0; i < (int)vec.size();) {
    cp = vec[i].first;
    if (cp - 1 > pp) {
      arr[counter] += (cp - pp - 1);
    }
    while (i < (int)vec.size()) {
      if (vec[i].first == cp && vec[i].second == (-1)) {
        counter++;
        i++;
      } else
        break;
    }
    arr[counter]++;
    while (i < (int)vec.size()) {
      if (vec[i].first == cp && vec[i].second == (1)) {
        counter--;
        i++;
      } else
        break;
    }
    pp = cp;
  }
  for (int i = 1; i <= n; i++) {
    cout << arr[i] << " ";
  }
  cout << "\n";
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int t = 1;
  while (t--) {
    solve();
  }
}
