#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:20000000")
using namespace std;
int a, b, c, d, cnt;
int res(int l1, int r1, int l2, int r2, int k) {
  if (l1 > r1 || l2 > r2) return 0;
  if (l1 > l2 || (l1 == l2 && r1 < r2)) return res(l2, r2, l1, r1, k);
  if (r2 <= r1) return r2 - l2 + 1;
  int m = 1 << (k - 1);
  if (l2 > m) return res(l1, r1, l2 - m, r2 - m, k);
  if (r2 < m && r1 < m) return res(l1, r1, l2, r2, k - 1);
  return max(max(res(l1, r1, l2, m - 1, k), res(l1, r1, 1, r2 - m, k)),
             r1 - l2 + 1);
}
int main() {
  cin >> a >> b >> c >> d;
  cout << res(a, b, c, d, 30);
  return 0;
}
