#7042. F - Teleporter and Closed off

0

F - Teleporter and Closed off

当前没有测试数据。

F - 传送门和封闭城市

得分:500 分

问题描述

有 NN 个城市,编号为 11 到 NN。 还有一些单向传送门,可以将你传送到其他城市。 一个传送门能否直接将你从城市 ii(1≤i≤N1\leq i\leq N)传送到另一个城市,由长度为 MM 的字符串 SiS_i 表示,其中字符串 SiS_i 由字符 0 和 1 组成。具体来说,对于 1≤j≤N1\leq j\leq N:

  • 若 1≤j−i≤M1\leq j-i\leq M,并且字符串 SiS_i 的第 (j−i)(j-i) 个字符为 1,那么传送门可以将你直接从城市 ii 传送到城市 jj;
  • 否则,传送门不能将你直接从城市 ii 传送到城市 jj。

解决以下问题(k=2,3,…,N−1k=2,3,\ldots, N-1):

你能否从城市 11 到达城市 NN,并且不经过城市 kk,只通过多次使用传送门?如果可以,输出你需要使用传送门的最小次数;否则,输出 −1-1。

限制条件

  • 3≤N≤1053 \leq N \leq 10^5;
  • 1≤M≤101\leq M\leq 10;
  • M<NM<N;
  • SiS_i 是一个长度为 MM 的字符串,由字符 0 和 1 组成;
  • 如果 i+j>Ni+j>N,则字符串 SiS_i 的第 jj 个字符为 0;
  • NN 和 MM 是整数。

输入

输入使用标准输入格式给出。

输入的第一行包含两个整数 NN 和 MM。

接下来的 NN 行,每行包含一个长度为 MM 的字符串 SiS_i。

输出

输出 (N−2)(N-2) 个整数,用空格分隔,在一行中输出。

对于每个 ii(1≤i≤N−21\leq i\leq N-2),第 ii 个整数应该是对于 k=i+1k=i+1,所得到的答案。

样例

输入:

5 2
11
01
11
10
00

输出:

2 3 2

输入:

6 3
101
001
101
000
100
000

输出:

-1 3 3 -1