#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#include <list>
#define INF 0x3f3f3f
#define maxn 32000 + 50
#define juzheng 300
#define ll long long
using namespace std;
int n,tree[maxn],lv[maxn],x,y;
int lowbit(int t){
return t & (-t);
}
void add(int index,int val){
for(int i = index;i <= maxn;i += lowbit(i))
tree[i] += val;
}
int get_sum(int index){
int ans = 0;
for(int i = index;i > 0;i -= lowbit(i))
ans += tree[i];
return ans;
}
void init(){
memset(lv,0,sizeof(lv));
memset(tree,0,sizeof(tree));
}
int main(){
while(cin >> n){
init();
for(int i = 1;i <= n;i++){
cin >> x >> y;
x++;
lv[get_sum(x)]++;
add(x,1);
}
for(int i = 0;i < n;i++)
cout << lv[i] << endl;
}
return 0;
}