You are given nn integer numbers a1,a2,…,ana1,a2,…,an. Consider graph on nn nodes, in which nodes ii, jj (i≠ji≠j) are connected if and only if, aiaiAND aj≠0aj≠0, where AND denotes the .
Find the length of the shortest cycle in this graph or determine that it doesn't have cycles at all.
Input
The first line contains one integer nn (1≤n≤105)(1≤n≤105) — number of numbers.
The second line contains nn integer numbers a1,a2,…,ana1,a2,…,an (0≤ai≤10180≤ai≤1018).
Output
If the graph doesn't have any cycles, output −1−1. Else output the length of the shortest cycle.
Examples
input
Copy
43 6 28 9
output
Copy
4
input
Copy
55 12 9 16 48
output
Copy
3
input
Copy
41 2 4 8
output
Copy
-1
Note
In the first example, the shortest cycle is (9,3,6,28)(9,3,6,28).
In the second example, the shortest cycle is (5,12,9)(5,12,9).
The graph has no cycles in the third example.
代码:
#include#include #include #include #include #include #include #include