#include <bits/stdc++.h>
using namespace std;
struct caca {
  long long a, b;
};
caca v[7005];
bool ok[7005];
bool cmp(caca a, caca b) { return a.a < b.a; }
int main() {
  cin.tie(0)->sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
  int n;
  cin >> n;
  for (int i = 1; i <= n; i++) cin >> v[i].a;
  for (int i = 1; i <= n; i++) cin >> v[i].b;
  sort(v + 1, v + n + 1, cmp);
  v[0].a = -1;
  v[n + 1].a = -1;
  for (int i = 1; i <= n; i++) {
    if (v[i].a == v[i - 1].a || v[i].a == v[i + 1].a) {
      ok[i] = 1;
      for (int j = 1; j <= n; j++) {
        if ((v[i].a & v[j].a) == v[j].a) {
          ok[j] = 1;
        }
      }
    }
  }
  long long sol = 0;
  for (int i = 1; i <= n; i++) {
    if (ok[i]) {
      sol += v[i].b;
    }
  }
  cout << sol;
}
