청린은 알람이 울려도 좀처럼 일어나지 못하는 랜선 지인 뚜따를 위해 생일 선물로 랜선 알람시계를 보내주려고 한다!
랜선 알람시계는 일반적인 알람시계와 다르다. 여러 개의 랜선 알람시계가 동시에 울리면 각각의 소리가 하나로 합쳐지는데, 이때 알람 소리의 크기는 해당 알람시계들의 소리 크기를 bitwise OR 연산한 값이 된다.
청린은 인터넷에서 선물로 구매할 개의 서로 다른 소리 크기를 갖는 랜선 알람시계를 찾았다. 전부 보내줘서 모두 동시에 울리게 하면 알람 소리의 크기가 최대가 되겠지만, 지나치게 큰 알람 소리는 뚜따의 청각에 문제를 일으킬 수도 있다.
따라서 청린은 선물로 보낸 랜선 알람시계들을 모두 동시에 울렸을 때의 소리 크기가 이하가 되도록 개 이상의 랜선 알람시계를 선택하되, 그중 소리 크기가 최대가 되는 선택을 하려고 한다.
청린이 조건에 따라 선택한 랜선 알람시계들을 모두 동시에 울렸을 때의 알람 소리의 크기를 구해 보자.
Input
입력은 다음과 같은 형식으로 주어진다.
는 번째 랜선 알람시계의 소리 크기이다.
Output
청린이 조건에 따라 개 이상의 랜선 알람시계를 선택할 수 있다면, 첫째 줄에 선택한 랜선 알람시계들을 모두 동시에 울렸을 때의 알람 소리의 크기 중 최댓값을 출력한다.
그러한 선택을 할 수 없다면 대신 을 출력한다.
Constraints
- .
- .
- ().
- 은 모두 서로 다르다.
Subtasks
Samples
, , , 를 모두 선택하면 알람 소리의 크기는 이고, 이는 10 이하이다. 여기서 는 bitwise OR을 의미한다.
만 선택하면 알람 소리의 크기는 이고, 이는 이하이다.
조건을 만족하도록 개 이상의 알람시계를 선택할 수 없다.