#include<bits/stdc++.h> // #define int long long using namespace std; const int N=200005; map<pair<int,int>,int> mp,vis; map<pair<int,int>,pair<int,int> > ans; int n,x[N],y[N]; int dr[4][2]={{1,0},{-1,0},{0,1},{0,-1}}; int main(){ scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d%d",&x[i],&y[i]); mp[{x[i],y[i]}]=1; } queue<pair<int,int>> q; for(int i=1;i<=n;i++){ for(int j=0;j<4;j++){ int xx=x[i]+dr[j][0],yy=y[i]+dr[j][1]; if(mp.count({xx,yy})==0){ ans[{x[i],y[i]}]={xx,yy}; q.push({x[i],y[i]}); vis[{x[i],y[i]}]=1; continue; } } } while(q.size()){ auto tp=q.front();q.pop(); int x=tp.first,y=tp.second; for(int j=0;j<4;j++){ int xx=x+dr[j][0],yy=y+dr[j][1]; if(mp.count({xx,yy})==1&&vis[{xx,yy}]==0){ vis[{xx,yy}]=1; ans[{xx,yy}]=ans[{x,y}]; q.push({xx,yy}); } } } for(int i=1;i<=n;i++){ cout<<ans[{x[i],y[i]}].first<<" "<<ans[{x[i],y[i]}].second<<endl; } }