有 n 个地铁站排成一条直线,编号从 1 到 n。有 m 条地铁线路,第 i 条地铁线路覆盖了 [li,ri] 这一段地铁站区间,i 号线的地铁会在这些站之间运行。如果一个地铁站有多条地铁线路经过,就可以在这一站换乘到其他经过这一站的地铁线路。
小 A 有 Q 次询问,第 i 次询问给定 si,ti,请你求出从第 si 个地铁站到第 ti 个地铁站最少需要换乘多少次?如果无法到达则输出 −1。
第一行两个整数 n,m。
接下来 m 行第 i 行 2 个整数 li,ri 表示第 i 条地铁线路的运行区间。
接下来一行一个整数 Q。
接下来 Q 行第 i 行两个整数 si,ti 表示第 i 次询问。
对于每次询问,输出一行一个整数表示最少需要换乘几次地铁。如果无法从 si 到达 ti,输出 -1。
6 3
1 2
2 5
4 6
3
1 6
4 3
2 6
2
0
1
10 5
1 3
2 5
6 7
7 9
9 10
5
1 5
7 2
8 7
3 5
6 10
1
-1
0
0
2
【样例解释】
对于样例 1 的第 3 组询问,可以先坐 2 号线路从 2 号站到 5 号站,然后转乘 3 号线路从 5 号站坐到 6 号站,只需要转站一次。
对于样例 2 的第 2 组询问,注意到没有任何地铁线路跨过 5 号站到 6 号站这一区间,所以不可能从 7 号站到达 2 号站,输出 −1。
【数据范围】
对于 20% 的数据,n,m,Q≤2×103。
对于 40% 的数据,n,m≤2×103。
对于 100% 的数据,2≤n≤5×105,1≤m≤106,1≤Q≤5×105,1≤li<ri≤n,1≤si,ti≤n,si=ti。
注意不保证 si<ti,也就是说可能出现 si>ti,即需要从编号较大的站坐到编号较小的站。
大佬神犇们球球了qwq