#include <bits/stdc++.h>
using namespace std;
vector<int> pp;
int db = 100;
long long sum;
int n;
int t[300001][62];
vector<int> r;
long long v[300001];
bool ans() {
  long long er = 0;
  for (int i = 1; i <= n; i++) {
    long long p = 0;
    for (int j = 0; j < r.size(); j++) {
      if (t[i][r[j]]) {
        p++;
      }
    }
    long long k = v[i];
    if (p % 2 == 1) {
      er -= k;
    } else {
      er += k;
    }
  }
  if (sum > 0 && er < 0) {
    return true;
  }
  if (sum < 0 && er > 0) {
    return true;
  }
  return false;
}
int main() {
  ios_base::sync_with_stdio(false);
  for (int i = 1; i <= 6200; i++) {
    int x = 0;
    if (i % 5 != 0) {
      x = 1;
    }
    pp.push_back(x);
  }
  cin >> n;
  for (int i = 1; i <= n; i++) {
    long long a, b;
    cin >> a >> b;
    sum += a;
    v[i] = a;
    for (int j = 0; j < 62; j++) {
      if (b % 2 == 1) {
        t[i][j] = true;
      }
      b /= 2;
    }
  }
  long long abc = 0;
  for (long long i = 0; i < 62; i++) {
    r.push_back(i);
    abc += (long long)1 << i;
  }
  if (ans()) {
    cout << abc << endl;
    return 0;
  }
  r.clear();
  r.push_back(17);
  r.push_back(18);
  if (ans()) {
    cout << (1 << 17) + (1 << 18) << endl;
    return 0;
  }
  r.clear();
  for (long long i = 0; i <= 61; i++) {
    for (long long j = i + 1; j <= 61; j++) {
      r.clear();
      r.push_back(i);
      r.push_back(j);
      if (ans()) {
        long long f = 0;
        f += 1 << i;
        f += 1 << j;
        cout << f << endl;
        return 0;
      }
    }
  }
  while (true) {
    if (db == 100) {
      random_shuffle(pp.begin(), pp.end());
      db = 0;
    }
    long long a = 0;
    long long b = 1;
    r.clear();
    for (int i = db * 62; i < db * 62 + 62; i++) {
      if (pp[i] == 1) {
        r.push_back(i - db * 62);
        a += b;
      }
      b *= 2;
    }
    if (ans()) {
      cout << a << endl;
      return 0;
    }
    db++;
  }
  return 0;
}
