【题目描述】
在这个城市中有n个站台和m条公交线路,第i条公交线路由ti个站台组成,记为 si,1,si,2,…,si,ti。在0时刻,第i辆公交车会处在si,1站台,之后每个时刻公交都会到达路线中的下一个站台。当公交车到达终点站后,它下一个时刻将会回到出发的站台,注意一个站台可能在一条线路中出现多次,但不会相邻。
在0时刻,蒜头处在站台1。如果在某一时刻蒜头和公交在同一个站台,那么蒜头就可以上这辆公交车,并在任意时刻下车,上下车的过程并不会花费时间。现在蒜头想要知道,如果他只乘坐公交车出行,他分别能最早在何时到达每个站台,或是告诉他这是不可能的。
注意,蒜头一次只能乘坐一辆车,但在通往某个站台的过程中,蒜头可以乘坐许多辆不同的公交车。
【输入】
输入的第一行是两个整数n,m,分别表示站台和线路的个数。
接下来的m行,每行的第一个数为ti,表示线路的长度,随后的ti个整数描述一条公交线路。
【输出】
共输出1行n−1个数,第i个数表示到达站台i+1的最短时间。如果不能到达,输出−1。
【输入样例】
文本
8 4
2 5 4
3 6 1 2
4 4 2 1 3
2 7 8
【输出样例】
【提示】
【数据规模】
100%的数据,ti≥2。
| 子任务编号 |
子任务分值 |
n≤ |
m≤ |
Σti≤ |
| 1 |
29 |
50 |
50 |
300 |
| 2 |
27 |
103 |
103 |
2×104 |
| 3 |
14 |
5×103 |
5×103 |
105 |
| 4 |
30 |
105 |
105 |
2×105 |