#include <bits/stdc++.h>
using namespace std;
std::pair<long, long> f[100000];
int main() {
  long n, a[100000], b[100000], c[100000], d[100000], g = 0, e = 0, i;
  scanf("%ld", &n);
  for (i = 0; i < n; i++) scanf("%ld%ld", a + i, b + i);
  for (i = 0; i < n; i++)
    if (a[i] == 1) {
      c[e] = i;
      d[e++] = b[i];
    }
  for (i = 0; i < e; i++) {
    if (a[c[i]] != 0) {
      f[g].first = c[i];
      f[g++].second = d[i];
    }
    b[d[i]] ^= c[i];
    a[d[i]]--;
    if (a[d[i]] == 1) {
      c[e] = d[i];
      d[e++] = b[d[i]];
    }
  }
  printf("%ld\n", g);
  for (i = 0; i < g; i++) printf("%ld %ld\n", f[i].first, f[i].second);
  return 0;
}
