#686. 最优乘车

最优乘车

【问题描述】

H 城是一个旅游胜地,为方便游客,巴士公司设置了多个巴士站并开通了若干条单程巴士线路。 每条单程线路从某个站出发,依次经过若干个站,最终到达终点站。

一名旅客住在饭店(编号为 1),想前往 S 公园(编号为 N)。 如果不能直接乘一条巴士线路到达,则可以在站点下车并换乘其他线路。 目标是:在能到达 S 公园的前提下,使换乘次数最少

换乘次数为 0 表示乘坐一条线路即可直达。

【输入格式】

输入文件 Travel.in:

  • 第 1 行:两个整数 M 和 N
    • M 表示单程巴士线路数(1 ≤ M ≤ 100)
    • N 表示巴士站总数(1 < N ≤ 500)
  • 第 2 行到第 M+1 行:
    • 每行描述一条巴士线路
    • 按运行顺序给出该线路经过的所有站号,相邻站号之间用空格隔开

【输出格式】

输出文件 Travel.out,仅一行:

  • 若无法从饭店到达 S 公园,输出 NO
  • 否则输出最少换车次数

【输入样例】

3 7
6 7
4 7 3 6
2 1 3 5

【输出样例】

2