#ifdef LOCAL #include #else #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,popcnt,lzcnt,abm,bmi,bmi2") #include #define debug(...) ((void)0) #define postprocess(...) ((void)0) #endif #include using namespace std; using ll = long long; using ld = long double; void solve([[maybe_unused]] int test) { int N; cin >> N; vector> points; for (int i = 1; i <= N; i++) { int x, y; cin >> x >> y; points.push_back({x, y, i}); } sort(points.begin(), points.end()); int K = N / 2; cout << K << endl; for (int i = 0; i < K; i++) { int z, w; tie(ignore, ignore, z) = points[2 * i]; tie(ignore, ignore, w) = points[2 * i + 1]; cout << z << ' ' << w << endl; } } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int t = 1; // cin >> t; for (int i = 1; i <= t; i++) { solve(i); } postprocess(); }