import
java.io.*;
import
java.util.*;
class
GFG {
static
int
minOperations(
int
A[],
int
N,
int
M)
{
Map<Integer, Integer> HashMap =
new
HashMap<Integer, Integer>();
for
(
int
i =
0
; i < N; i++)
{
if
(HashMap.containsKey(A[i]))
HashMap.put(A[i], HashMap.get(A[i]) +
1
);
else
HashMap.put(A[i],
1
);
if
(HashMap.get(A[i]) >=
2
)
return
0
;
}
for
(
int
i =
0
; i < N; i++) {
if
(HashMap.containsKey(A[i]))
HashMap.put(A[i], HashMap.get(A[i]) -
1
);
else
HashMap.put(A[i],
1
);
int
performOperation = A[i] & M;
if
(HashMap.get(performOperation)>
0
)
return
1
;
if
(HashMap.containsKey(A[i]))
HashMap.put(A[i], HashMap.get(A[i]) +
1
);
else
HashMap.put(A[i],
1
);
}
HashMap.clear();
for
(
int
i =
0
; i < N; i++) {
int
performOperation = A[i] & M;
if
(HashMap.containsKey(A[i]))
HashMap.put(A[i], HashMap.get(A[i]) +
1
);
else
HashMap.put(A[i],
1
);
if
(HashMap.get(A[i]) ==
2
)
return
2
;
}
return
-
1
;
}
public
static
void
main(String args[])
{
int
A[] = {
1
,
2
,
3
,
7
};
int
N = A.length;
int
X =
3
;
System.out.println(minOperations(A, N, X));
int
A1[] = {
1
,
2
,
3
};
int
N1 = A1.length;
int
X1 =
7
;
System.out.println(minOperations(A1, N1, X1));
}
}