#include using namespace std; using ll=long long; using pll=pair; using tll=tuple; using ld=long double; const ll INF=(1ll<<60); #define rep(i,n) for (ll i=0;i<(ll)(n);i++) #define all(v) v.begin(),v.end() template void chmin(T &a,T b){ if(a>b){ a=b; } } template void chmax(T &a,T b){ if(a> n; cout << n/2 << '\n'; vector> v(8001); rep(i,n){ ll l,r; cin >> l >> r; v[l].push_back({r,i}); } vector ans; ll cnt=0; rep(i,8001){ if(v[i].empty()) continue; sort(all(v[i])); if(cnt%2==1) reverse(all(v[i])); for(auto &j:v[i]){ ans.push_back(j); } cnt++; } for(ll i=0;i<=n-2;i+=2){ cout << ans[i].second+1 << ' ' << ans[i+1].second+1 << '\n'; } }