给定一个包含 $N$ 个节点(编号为 $1$ 到 $N$)和 $M$ 条有向边的有向无环图。你的任务是回答 $Q$ 个关于节点间可达性的询问。对于每个询问,你将得到两个节点 $U$ 和 $V$。
- 如果节点 $V$ 可以通过现有的路径(有向边)从节点 $U$ 到达,则输出 $0$,因为不需要额外的道路。
- 如果 $V$ 不能从 $U$ 到达,你可以选择在图中任意两个节点之间建立一条临时边,使得 $V$ 可以从 $U$ 到达。
在回答完询问后,这条新修的道路(如果有)会被销毁。
你需要确定在需要的情况下,修建这条道路的最小代价。在节点 $X$ 和节点 $Y$ 之间修建道路的代价定义为 $|X - Y|$,即它们节点编号的绝对差。
输入格式
第一行包含一个整数 $T(1 \le T \le 100)$。每个测试用例的第一行包含两个整数 $N(1 \le N \le 10^4)$ 和 $M(1 \le M \le 8 \cdot 10^4)$,其中 $N$ 表示图中的节点数,$M$ 表示有向边的数量。
接下来的 $M$ 行,每行包含两个整数 $U$ 和 $V(1 \le U, V \le N, U \neq V)$,表示一条从 $U$ 到 $V$ 的有向边。输入下一行包含一个整数 $Q(1 \le Q \le 10^6)$,表示询问的数量。接下来的 $Q$ 行,每行包含两个整数 $U$ 和 $V(1 \le U, V \le N)$,表示需要处理的询问。
保证所有测试用例中 $N$ 的总和不超过 $10^5$,$M$ 的总和不超过 $10^5$,$Q$ 的总和不超过 $10^6$。
输出格式
对于每个测试用例,处理所有的 $Q$ 个询问。对于每个询问,在单独的一行中输出一个整数,表示该询问的答案。
样例
输入 1
1 4 4 1 2 1 3 1 4 4 3 2 2 3 2 4
输出 1
1 1