600130 - 与和查找

Time Limit

1000 毫秒

Memory Limit

128 MB

通过次数

11

提交次数

24

给定一个长度n的序列a_i和一个数x,每一步可以将序列中的一个数与上x(即a[i]=a[i] & x),求最少需要几步能使得序列中出现两个相等的数。

Input

第一行,n,x

第二行,n个整数a_i

对于100%的数据:

2 \le n \le 10^5

1 \le x \le 10^5

1 \le a_i \le 10^6

Output

一个整数表示步数,若无论多少步都不能产生两个相等的数输出-1。

Examples

Input

4 3
1 2 3 7

Output

1

Input

2 228
1 1

Output

0

Input

3 7
1 2 3

Output

-1

Hint

二进制与只会保留均为1的位。