#L3775. 「BalticOI 2022 Day1」Event Hopping

「BalticOI 2022 Day1」Event Hopping

题目描述

题目译自 BalticOI 2022 Day1「Event Hopping」

nn 个区间,第 ii 个区间为 [li,ri][l_i, r_i]

你可以在区间之间跳跃。当你在第 xx 个区间上时,你可以跳到一个覆盖右端点 rxr_x 的区间 yy 上,即从 xx 能跳到 yy 当且仅当 rx[ly,ry]r_x \in [l_y, r_y]

qq 次询问,每次你一开始在第 sis_i 个区间,你需要跳到第 tit_i 个区间。你需要输出你至少需要跳多少次。如果不能跳到,输出 impossible


输入格式

第一行,两个整数 n,qn, q

接下来 nn 行,每行两个整数 li,ril_i, r_i

接下来 qq 行,每行两个整数 si,tis_i, t_i


输出格式

输出 qq 行,第 ii 行输出第 ii 次询问的答案。如果无解输出 impossible


样例 1

输入

5 2
1 3
2 4
4 7
7 9
3 7
1 4
3 2

输出

2
impossible

解释
第一次询问中,一种可行的跳跃方案是 1541 \rightarrow 5 \rightarrow 4,共跳跃两次。
第二次询问中,由于第 33 个区间的右端点已经在第 22 个区间右端点右边,所以不存在跳跃的方案。


样例 2

输入

8 5
1 2
3 4
1 5
6 7
5 10
10 20
15 20
999999999 1000000000
1 6
1 7
2 4
3 3
5 8

输出

3
4
impossible
0
impossible

数据范围与提示

  • 子任务 11010 分):每一个区间可以跳到至多一个其他区间。
  • 子任务 21010 分):N1000,Q100N \leq 1000, Q \leq 100
  • 子任务 31515 分):N5000N \leq 5000
  • 子任务 41515 分):Q100Q \leq 100
  • 子任务 52020 分):不存在两个区间 i,ji,j 满足 [li,ri][lj,rj][l_i,r_i] \subseteq [l_j,r_j]
  • 子任务 63030 分):没有特殊限制。

对于所有数据,满足:

$$1 < N, Q < 100000,\quad 1 < l_i < r_i < 10^9,\quad 1 \leq s_i, t_i \leq n $$