#include<iostream> #include<set> #include<algorithm> #include<vector> #include<string> #include<set> #include<map> #include<numeric> #include<queue> #include<cmath> using namespace std; typedef long long ll; const ll INF=1LL<<60; typedef pair<int,int> P; typedef pair<int,P> PP; const ll MOD=998244353; const double PI=acos(-1); int main(){ int N; cin>>N; vector<P> order; map<P,int> dogid; for(int i=0;i<N;i++){ int x,y; cin>>x>>y; order.emplace_back(x,y); dogid[make_pair(x,y)]=i; } vector<pair<int,int>> ans; sort(order.begin(),order.end()); for(int i=0;i+1<N;i+=2){ ans.emplace_back(dogid[order[i]],dogid[order[i+1]]); } cout<<ans.size()<<endl; for(auto [z,w]:ans){ cout<<z+1<<' '<<w+1<<endl; } }