#include <stdio.h>
#include <cstring>
#include <algorithm>
using namespace std;
const int INF = (int) 1e9 + 100;
const int V = (int)1e5 + 100, E = V;
typedef long long ll;
struct star {
int x, y;
};
star a[V];
int ans[V];
bool comp(star a, star b) {
return (a.x < b.x) || ((a.x == b.x) && (a.y < b.y));
}
int tree[V], sz = 1;
void put(int k) {
tree[k + sz]++;
for(int i = (k + sz) >> 1; i > 0; i /= 2)
tree[i] = tree[2*i] + tree[2*i + 1];
}
int get(int l, int r) {
l += sz; r += sz;
int ans = 0;
while(l <= r) {
if(l % 2 == 1)
ans += tree[l];
if(r % 2 == 0)
ans += tree[r];
l = (l + 1) / 2;
r = (r - 1) / 2;
}
return ans;
}
void get_prepared() {
sz = 1;
for(int i = 0; i < V; ++i)
tree[i] = 0;
}
int main()
{
int n;
while(scanf("%d", &n) > 0) {
while (sz < n) sz *= 2;
for (int i = 0; i < n; ++i) {
scanf("%d %d", &a[i].x, &a[i].y);
}
sort(a, a + n, comp);
for (int i = 0; i < n; ++i) {
ans[get(0, a[i].y)]++;
put(a[i].y);
}
for (int i = 0; i < n; ++i) {
printf("%d\n", ans[i]);
}
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxjc3RyaW5nPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBJTkYgPSAoaW50KSAxZTkgKyAxMDA7CmNvbnN0IGludCBWID0gKGludCkxZTUgKyAxMDAsIEUgPSBWOwp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKCnN0cnVjdCBzdGFyIHsKaW50IHgsIHk7Cn07CgpzdGFyIGFbVl07CgppbnQgYW5zW1ZdOwoKYm9vbCBjb21wKHN0YXIgYSwgc3RhciBiKSB7CiAgICByZXR1cm4gKGEueCA8IGIueCkgfHwgKChhLnggPT0gYi54KSAmJiAoYS55IDwgYi55KSk7Cn0KCmludCB0cmVlW1ZdLCBzeiA9IDE7Cgp2b2lkIHB1dChpbnQgaykgewogICAgdHJlZVtrICsgc3pdKys7CiAgICBmb3IoaW50IGkgPSAoayArIHN6KSA+PiAxOyBpID4gMDsgaSAvPSAyKQogICAgICAgIHRyZWVbaV0gPSB0cmVlWzIqaV0gKyB0cmVlWzIqaSArIDFdOwp9CgppbnQgZ2V0KGludCBsLCBpbnQgcikgewogICAgbCArPSBzejsgciArPSBzejsKICAgIGludCBhbnMgPSAwOwogICAgd2hpbGUobCA8PSByKSB7CiAgICAgICAgaWYobCAlIDIgPT0gMSkKICAgICAgICAgICAgYW5zICs9IHRyZWVbbF07CiAgICAgICAgaWYociAlIDIgPT0gMCkKICAgICAgICAgICAgYW5zICs9IHRyZWVbcl07CiAgICAgICAgbCA9IChsICsgMSkgLyAyOwogICAgICAgIHIgPSAociAtIDEpIC8gMjsKICAgIH0KICAgIHJldHVybiBhbnM7Cn0KCnZvaWQgZ2V0X3ByZXBhcmVkKCkgewogICAgc3ogPSAxOwogICAgZm9yKGludCBpID0gMDsgaSA8IFY7ICsraSkKICAgICAgICB0cmVlW2ldID0gMDsKfQoKaW50IG1haW4oKQp7CgogICAgaW50IG47CgogICAgd2hpbGUoc2NhbmYoIiVkIiwgJm4pID4gMCkgewoKICAgICAgICB3aGlsZSAoc3ogPCBuKSBzeiAqPSAyOwoKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgICAgICBzY2FuZigiJWQgJWQiLCAmYVtpXS54LCAmYVtpXS55KTsKICAgICAgICB9CgogICAgICAgIHNvcnQoYSwgYSArIG4sIGNvbXApOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSB7CiAgICAgICAgICAgIGFuc1tnZXQoMCwgYVtpXS55KV0rKzsKICAgICAgICAgICAgcHV0KGFbaV0ueSk7CiAgICAgICAgfQoKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgICAgICBwcmludGYoIiVkXG4iLCBhbnNbaV0pOwogICAgICAgIH0KICAgIH0KCn0K