#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 5;
const int M = 1 << 20;
int n, a[N], b[N], deg[M];
int head[N + M + 10], tot, sta[N << 2], top;
bool vis[N << 2];
int read() {
  int x = 0, f = 1;
  char c = getchar();
  while (c < '0' || c > '9') {
    if (c == '-') f = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    x = (x << 1) + (x << 3) + (c ^ 48);
    c = getchar();
  }
  return x * f;
}
struct EDGE {
  int nxt, to;
} edge[N << 2];
inline void add_edge(int u, int v) {
  edge[++tot].nxt = head[u];
  edge[tot].to = v;
  head[u] = tot;
}
void dfs(int u) {
  for (int& i = head[u]; i; i = edge[i].nxt)
    if (!vis[i]) {
      int v = edge[i].to;
      vis[i] = vis[i ^ 1] = 1, dfs(v), sta[++top] = v;
    }
}
int main() {
  n = read();
  for (int i = 1; i <= n; ++i) a[i] = read(), b[i] = read();
  for (int i = 20; i >= 1; --i) {
    int S = (1 << i) - 1;
    memset(deg, 0, sizeof(deg));
    for (int j = 1; j <= n; ++j) deg[a[j] & S]++, deg[b[j] & S]++;
    bool flag = false;
    for (int j = 0; j <= S; ++j)
      if (deg[j] & 1) {
        flag = true;
        break;
      }
    if (flag) continue;
    memset(vis, 0, sizeof(vis));
    memset(head, 0, sizeof(head));
    tot = 1;
    for (int j = 1; j <= n; ++j)
      add_edge(j, (a[j] & S) + n + 1), add_edge((a[j] & S) + n + 1, j),
          add_edge(j, (b[j] & S) + n + 1), add_edge((b[j] & S) + n + 1, j);
    top = 0, dfs(1);
    int cnt = 0;
    for (int j = 1; j <= top; ++j) cnt += (sta[j] <= n);
    if (cnt != n) continue;
    cout << i << endl;
    for (int j = 1; j <= top; ++j) {
      if (sta[j] <= n) {
        if (!(j < top && sta[j + 1] > n)) exit(0);
        int s = sta[j + 1] - n - 1, id = sta[j];
        if (!((a[id] & S) == s || (b[id] & S) == s)) exit(0);
        if ((a[id] & S) == s)
          cout << id * 2 << " " << id * 2 - 1 << " ";
        else
          cout << id * 2 - 1 << " " << id * 2 << " ";
      }
    }
    return 0;
  }
  cout << 0 << endl;
  for (int i = 1; i <= n * 2; ++i) cout << i << " ";
  return 0;
}
