#P1613. 跑路

跑路

跑路

  • 时间限制:1 秒
  • 内存限制:128 MiB

题目描述

小 A 的家到公司之间的道路构成一个有向图。小 A 的家是顶点 11,公司是顶点 nn,每条边的长度均为一千米。

小 A 有一台空间跑路器。每使用一秒,跑路器可以沿图中的一条有向路径前进恰好 2k2^k 千米,其中 kk 可以是任意自然数。跑路器使用 32 位整数记录一次连续路线的信息,因此所采用路径的总长度不能超过 23112^{31}-1 千米。

求小 A 从家到公司最少需要多少秒。数据保证从顶点 11 到顶点 nn 至少存在一条路径。

输入格式

第一行包含两个整数 n,mn,m,分别表示顶点数和边数。

接下来 mm 行,每行包含两个整数 u,vu,v,表示一条从 uu 指向 vv 的边。

输出格式

输出一个整数,表示从家到公司所需的最少秒数。

样例输入 1

4 4
1 1
1 2
2 3
3 4

样例输出 1

1

样例解释

可以沿 112341\to1\to2\to3\to4 前进,总长度为 44 千米,因此只需使用一次跑路器。

数据范围

  • 2n502\le n\le50
  • 1m1041\le m\le10^4
  • 1u,vn1\le u,v\le n
  • 从顶点 11 到顶点 nn 至少存在一条路径;
  • 最优路线的总长度不超过 23112^{31}-1
子任务编号 分值 特殊限制
1 28 图是 DAG,且每个顶点的入度和出度均不超过 11
2 32 图是 DAG,且至少一个顶点的出度不小于 22
3 40 无特殊限制