## https://yukicoder.me/problems/no/2656 MAX_VALUE = 10 ** 18 def main(): N = int(input()) X = list(map(int, input().split())) A = list(map(int, input().split())) dp = [MAX_VALUE] * (N + 1) dp[0] = 0 for i in range(N): a = 0 for j in reversed(range(i + 1)): a ^= A[j] cost = X[i] - X[j] dp[i + 1] = min(dp[i + 1], dp[j] + a + cost) print(dp[-1]) if __name__ == "__main__": main()