#1414. 游走距离

游走距离

当前没有测试数据。

游走距离

题目描述

在比特镇一共有nn个街区,编号依次为11nn,它们之间通过若干条单向道路连接。

比特镇的交通系统极具特色,除了mm条单向道路之外,每个街区还有一个编码valival_{i},不同街区可能拥有相同的编码。如果vali&valj=valjval_{i} \& val_{j} = val_{j},即valival_{i}在二进制下与valjval_{j}做与运算等于valjval_{j},那么也会存在一条额外的从ii出发到jj的单向道路。

ByteasarByteasar现在位于11号街区,他想知道通过这些道路到达每一个街区最少需要多少时间。因为比特镇的交通十分发达,你可以认为通过每条道路都只需要11单位时间。

输入格式

第一行包含两个正整数nnmm,表示街区的总数以及道路的总数。

第二行包含nn个正整数val1val_{1},val2val_{2},\ldots,valnval_{n},分别表示每个街区的编码。

接下来mm行,每行包含两个正整数uiu_{i}viv_{i},表示一条单向道路,起点为uiu_{i},终点为viv_{i}

输出格式

输出nn行,每行一个整数,其中第ii行输出到达第ii个街区的最少时间,如果无法到达则输出1-1

数据范围与提示

测试点编号 nn mm valival_{i}
1 =5=5 10\leq 10 <24< 2^{4}
2
3 =2000=2000 5000\leq 5000 <210< 2^{10}
4
5 =2×105=2 \times 10^{5} 3×105\leq 3 \times 10^{5}
6 <215< 2^{15}
7
8 <220< 2^{20}
9
10

样例

5 2
5 4 2 3 7
1 4
2 3
0
1
2
1
-1