#abc236g. [abc236_g]Good Vertices

[abc236_g]Good Vertices

题目描述

我们有一个有向图,其中有 NN 个顶点。这 NN 个顶点分别称为 Vertex 11、Vertex 22\ldots、Vertex NN。在时间 00,图中没有边。

对于每个 t=1,2,,Tt = 1, 2, \ldots, T,在时间 tt,从 Vertex utu_t 到 Vertex vtv_t 之间添加一条有向边。(边可以是自环,即 ut=vtu_t = v_t 可能成立。)

当一个顶点可以通过从 Vertex 11 开始沿着一条边恰好经过 LL 次到达时,我们称其为 好的 顶点。

对于每个 i=1,2,,Ni = 1, 2, \ldots, N,打印出 Vertex ii 成为好的顶点的最早时间。如果 Vertex ii 没有成为好的顶点的时间,打印 1-1

约束条件

  • 2leqNleq1002 \\leq N \\leq 100
  • 1leqTleqN21 \\leq T \\leq N^2
  • 1leqLleq1091 \\leq L \\leq 10^9
  • 1lequt,vtleqN1 \\leq u_t, v_t \\leq N
  • ineqjRightarrow(ui,vi)neq(uj,vj)i \\neq j \\Rightarrow (u_i, v_i) \\neq (u_j, v_j)
  • 输入中的所有值都是整数。

输入

输入以以下格式从标准输入给出:

NN TT LL u1u_1 v1v_1 u2u_2 v2v_2 vdots\\vdots uTu_T vTv_T

输出

以以下格式,对于每个 i=1,2,,Ni = 1, 2, \ldots, N,打印 Vertex ii 成为好的顶点的最早时间 XiX_i。如果 Vertex ii 没有成为好的顶点的时间,XiX_i 应该为 1-1

X1X_1 X2X_2 ldots\\ldots XNX_N


示例输入 1

4 5 3
2 3
3 4
1 2
3 2
2 2

示例输出 1

-1 4 5 3

在时间 00,图中没有边。之后,边被添加如下。

  • 在时间 11,从 Vertex 22 到 Vertex 33 添加了一条有向边。
  • 在时间 22,从 Vertex 33 到 Vertex 44 添加了一条有向边。
  • 在时间 33,从 Vertex 11 到 Vertex 22 添加了一条有向边。现在,Vertex 44 可以通过恰好三步从 Vertex 11 到达:1rightarrow2rightarrow3rightarrow41 \\rightarrow 2 \\rightarrow 3 \\rightarrow 4,使得 Vertex 44 成为好的顶点。
  • 在时间 44,从 Vertex 33 到 Vertex 22 添加了一条有向边。现在,Vertex 22 可以通过恰好三步从 Vertex 11 到达:1rightarrow2rightarrow3rightarrow21 \\rightarrow 2 \\rightarrow 3 \\rightarrow 2,使得 Vertex 22 成为好的顶点。
  • 在时间 55,从 Vertex 22 到 Vertex 22 添加了一条有向边(自环)。现在,Vertex 33 可以通过恰好三步从 Vertex 11 到达:1rightarrow2rightarrow2rightarrow31 \\rightarrow 2 \\rightarrow 2 \\rightarrow 3,使得 Vertex 33 成为好的顶点。

Vertex 11 将永远不会成为好的顶点。


示例输入 2

2 1 1000000000
1 2

示例输出 2

-1 -1