#indeednow2015finalae. [indeednow_2015_finala_e]Page Rank

[indeednow_2015_finala_e]Page Rank

问题文

某个公司有 nn 名员工。
该公司的座位是一条直线排列的,并且员工编号从这条直线的一端开始分配。
为了评估员工的能力,该公司使用以下方法:

首先,每个员工都要向公司提交他们认为优秀的员工名单。
ii 个员工提交的名单记为 N(i)N(i)
由于我们对远处的员工不太了解,所以 N(i)N(i) 中不包括离座位超过 10 个位置的员工。
(对于任意 xinN(i)x \\in N(i),满足 ix<10|i - x| < 10
收集完所有人的名单后,构建一个以员工为顶点、认为他们优秀的关系为有向边的图。
然后,在该图上计算 Page Rank,作为员工的能力指标。
假设第 ii 个员工的 Page Rank 是 PR(i)PR(i),认为第 ii 个员工优秀的员工集合为 M(i)M(i),那么 Page Rank 满足以下条件:

你的任务是为这家公司编写一个计算 Page Rank 的程序。


输入

输入以以下格式给出。

nn mm a1a_1 b1b_1 ...... ama_m bmb_m

  • 第 1 行包含两个整数 nnmm,分别表示员工数量 (1leqnleq10,0001 \\leq n \\leq 10{,}000) 和员工之间认为对方优秀的关系数量 (1leqmleq10,0001 \\leq m \\leq 10{,}000)。
  • 接下来的 mm 行,每行包含两个整数 aia_ibib_i (1leqai,bileqn,aibi<101 \\leq a_i, b_i \\leq n, |a_i - b_i| < 10),表示第 aia_i 个员工认为第 bib_i 个员工优秀。

输出

以一行输出每个员工的 Page Rank 值。

如果相对误差或绝对误差小于 10610^{-6},则被视为正确结果。


示例1


3 6
1 2
1 3
2 1
2 3
3 1
3 2

输出示例1


1
1
1

示例2


3 4
1 2
1 3
2 1
3 1

输出示例2


1.473684210526316
0.7631578947368423
0.7631578947368423

在这个例子中,有 3 名员工。
第 1 名员工认为第 2 名和第 3 名员工都是优秀的。
第 2 名员工认为第 1 名员工是优秀的。
第 3 名员工认为第 1 名员工是优秀的。
因此,每个员工的 Page Rank 都满足以下条件:
$PR(1) = 0.1 + 0.9 (\\frac{PR(2)}{1} + \\frac{PR(3)}{1})$
PR(2)=0.1+0.9(fracPR(1)2)PR(2) = 0.1 + 0.9 (\\frac{PR(1)}{2})
PR(3)=0.1+0.9(fracPR(1)2)PR(3) = 0.1 + 0.9 (\\frac{PR(1)}{2})