#include<bits/stdc++.h>
using namespace std;
int n;
struct Node{
int l,r;
bool operator<(const Node&t)const
{
return r<t.r;
}
}node[1000005];
int weizhi[1000005];
int f[1000005];
int s[1000005];
int lowbit(int x)
{
return x&-x;
}
void add(int x,int v)
{
for(int i=x;i<=100000;i+=lowbit(i))f[i]+=v;
}
int sum(int x)
{
int res=0;
for(int i=x;i!=0;i-=lowbit(i))res+=f[i];
return res;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int t,g;
scanf("%d%d",&t,&g);
t-=n;
g-=n;
weizhi[t]=i;
node[i]={i,g};
}
for(int i=1;i<=n;i++)
{
node[i]={i,weizhi[node[i].r]};
}
memset(f,0,sizeof f);
for(int i=1;i<=n;i++)
{
add(node[i].r,1);
s[i]+=sum(n)-sum(node[i].r);//找到男孩左边的女朋友插到男孩自己的女朋友右边的数量
}
memset(f,0,sizeof f);
for(int i=n;i>=1;i--)
{
s[i]+=sum(node[i].r);//找到男孩右边的女朋友插到男孩自己女朋友左边的数量
add(node[i].r,1);
}
for(int i=1;i<=n;i++)
{
cout<<s[i];
if(i!=n)
cout<<endl;
}
}