#include <bits/stdc++.h>
using namespace std;
struct T {
  int p, n;
};
bool operator<(T x, T y) { return x.p < y.p; }
T m[100100];
int main() {
  int i, n, j;
  for (scanf("%d", &n), i = 0; i < n; scanf("%d%d", &m[i].p, &m[i].n), i++)
    ;
  sort(m, m + n);
  j = m[n - 1].n;
  for (i = 0; i < n - 1; i++)
    if (m[i + 1].p - m[i].p > 40)
      continue;
    else {
      for (; m[i].p < m[i + 1].p; m[i].n = (m[i].n + 3) / 4, m[i].p++)
        ;
      if (m[i].n > m[i + 1].n) m[i + 1].n = m[i].n;
    }
  if (m[n - 1].n == j && j == 1)
    printf("%d\n", m[n - 1].p + 1);
  else {
    for (; m[i].n > 1; m[i].n = (m[i].n + 3) / 4, m[i].p++)
      ;
    printf("%d\n", m[i].p);
  }
  return 0;
}
