#include<bits/stdc++.h>
using namespace std;

int find_par(int i,int par[])
{
	if(i==par[i])
		return i;
		
	return par[i]=find_par(par[i],par);
}

int main()
{
	int n;
	cin>>n;
	
	vector<pair<int,int> > v;
	
	int x[n],y[n];
	for(int i=0;i<n;i++)
		cin>>x[i]>>y[i],v.push_back({x[i],i});
		
	sort(v.begin(),v.end());
	
	int arr[n];
	for(int i=0;i<n;i++)
		arr[i]=y[v[i].second];
		
	int par[n];
	int sz[n];
	
	for(int i=0;i<n;i++)
		par[i]=i,sz[i]=1;
		
	
	stack<int> s;
	
	for(int i=0;i<n;i++)
	{
		int mi=-1;
		if(s.size())
			mi=s.top();
			
		while(s.size() && arr[s.top()]<arr[i])
		{
		//	cout<<arr[s.top()]<<' '<<i<<endl;
			
			int b=find_par(s.top(),par);
			
			if(b!=i)
			{
				par[b]=i;
				sz[i]+=sz[b];
			}
			
			s.pop();
		}
		
		if(mi==-1 || arr[i]<arr[mi])
		{
			s.push(i);
		}
		else
		{
			s.push(mi);
		}
	}
	
	
	
	int ans[n];
	
	for(int i=0;i<n;i++)
	{
		int a=find_par(i,par);
		ans[v[i].second]=sz[a];	
	}
	
	for(int i=0;i<n;i++)
	{
		cout<<ans[i]<<endl;
	}
	return 0;
}