Lots of Edges
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

有 n 个点,每个点有点权 。若 (指二进制下按位与),则在 i,j 间连一条边权为 1 的边。
求 S 到 的最短路。

输入描述:

第一行两个正整数 n,S。
接下来一行 n 个非负整数,第 i 个为 a_i
对于所有数据,

输出描述:

一行 n 个整数,第 i 个为 S 到 i 的最短路长度。不能到达输出 -1。
示例1

输入

复制
5 3
2 3 4 5 6

输出

复制
1 1 0 2 -1

说明

样例解释:连了 (1,3),(2,3),(1,4) 三条边。