#include <bits/stdc++.h>
using namespace std;
using pii = pair<int, int>;
pii p[(int)1e3 + 10];
int main() {
  int n;
  scanf("%d", &n);
  if (n <= 2) return !printf("1\n1");
  for (int i = 1; i <= n; i++) {
    scanf("%d %d", &p[i].first, &p[i].second);
  }
  for (int ii = 1; ii <= 32; ii++) {
    vector<int> v[4];
    bool b[4] = {false, false, false, false};
    int cnt = 0;
    for (int i = 1; i <= n; i++) {
      int x = p[i].first & 1, y = p[i].second & 1;
      v[(x << 1) + y].push_back(i);
      if (!b[(x << 1) + y]) b[(x << 1) + y] = true, cnt++;
      p[i].first >>= 1;
      p[i].second >>= 1;
    }
    if (cnt == 1) continue;
    if (cnt >= 3 || (b[0] ^ b[3])) {
      printf("%d\n", (int)v[0].size() + (int)v[3].size());
      for (auto it : v[0]) printf("%d ", it);
      for (auto it : v[3]) printf("%d ", it);
      return 0;
    }
    if (b[0]) {
      printf("%d\n", (int)v[0].size());
      for (auto it : v[0]) printf("%d ", it);
      return 0;
    }
    printf("%d\n", (int)v[2].size());
    for (auto it : v[2]) printf("%d ", it);
    return 0;
  }
}
