#include <bits/stdc++.h>
struct data {
  int x, y, z;
};
using namespace std;
int n, m, a[100005], b[100005];
int get(int i, int kq) {
  for (int j = 1; j <= m; j++) {
    if (((a[i] & b[j]) | kq) == kq) return 1;
  }
  return 0;
}
int check(int kq) {
  for (int i = 1; i <= n; i++)
    if (get(i, kq) == 0) return 0;
  return 1;
}
void nhap() {
  ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
  cin >> n >> m;
  for (int i = 1; i <= n; i++) cin >> a[i];
  for (int i = 1; i <= m; i++) cin >> b[i];
}
void xuli() {
  for (int i = 0; i <= (1 << 9) - 1; i++) {
    if (check(i)) {
      cout << i;
      exit(0);
    }
  }
}
int main() {
  nhap();
  xuli();
}
