문제
IOI 鉄道は 1 本の鉄道路線を運営している.IOI 鉄道線には一直線上に並んだ N 個の駅があり,1 から N までの番号が付けられている.各 i (1≤i≤N−1) に対して,駅 i と駅 i+1 の間は線路で結ばれている.
IOI 鉄道線には M 系統の運行系統があり,1 から M までの番号が付けられている.系統 j (1≤j≤M) の列車の始発駅は駅 Aj であり,終着駅は駅 Bj である.列車は各駅に停車する.すなわち,系統 j の列車は,Aj<Bj のとき駅 Aj,駅 Aj+1,…,駅 Bj の順に停車し,Aj>Bj のとき駅 Aj,駅 Aj−1,…,駅 Bj の順に停車する.
旅人の JOI くんは,Q 個の旅行計画を考えている.k 番目 (1≤k≤Q) の計画は,駅 Sk から出発し,駅 Tk にいくつかの列車を乗り継いで到着するというものである.
しかしながら,JOI くんは長旅で疲れているので,空いている列車に乗車し,着席したい.そのため,JOI くんがある列車に乗車するのは,その列車の始発駅から(始発駅を含めて)K 駅以内の駅からのみとした.すなわち,JOI くんが系統 j の列車に乗車するとき,Aj<Bj であれば駅 Aj,駅 Aj+1,…,駅 min{Aj+K−1,Bj−1} から乗車でき,Aj>Bj であれば駅 Aj,駅 Aj−1,…,駅 max{Aj−K+1,Bj+1} から乗車できる.JOI くんは,列車に乗車した駅の次の駅からその列車の終着駅までの各駅のうちいずれかの駅で下車する.
JOI くんはこの条件のもと,なるべく乗り継ぎの回数を少なくしたい.
IOI 鉄道線の情報と JOI くんの計画が与えられたとき,それぞれの計画について,JOI くんが計画を達成するために乗車する列車の数の最小値を求めるプログラムを作成せよ.
입력
入力は以下の形式で標準入力から与えられる.入力される値はすべて整数である.
N K
M
A_1 B_1
A_2 B_2
...
A_M B_M
Q
S_1 T_1
S_2 T_2
...
S_Q T_Q
출력
標準出力に Q 行で出力せよ.k 行目 (1≤k≤Q) には,JOI くんが k 番目の計画を達成するために乗車する列車の数の最小値を出力せよ.ただし,計画が達成不可能な場合は,−1 を出力せよ.
예제 입력 1
5 2
2
5 1
3 5
3
5 3
3 2
2 1
예제 출력 1
예제 입력 2
6 3
2
1 6
5 1
4
5 1
6 3
3 6
2 1
예제 출력 2
예제 입력 3
6 5
4
3 1
2 4
5 3
4 6
5
1 5
3 2
2 6
6 3
5 4
예제 출력 3
예제 입력 4
12 1
5
1 7
10 12
3 5
8 10
5 9
7
2 11
5 8
3 12
4 6
1 9
9 10
1 4
예제 출력 4
제한
- 2≤N≤100000.
- 1≤K≤N−1.
- 1≤M≤200000.
- 1≤Aj≤N (1≤j≤M).
- 1≤Bj≤N (1≤j≤M).
- Aj=Bj (1≤j≤M).
- (Aj,Bj)=(Ak,Bk) (1≤j<k≤M).
- 1≤Q≤50000.
- 1≤Sk≤N (1≤k≤Q).
- 1≤Tk≤N (1≤k≤Q).
- Sk=Tk (1≤k≤Q).
- (Sk,Tk)=(Sl,Tl) (1≤k<l≤Q).
서브태스크
- (8 점) N≤300,M≤300,Q≤300.
- (8 점) N≤2000,M≤2000,Q≤2000.
- (11 점) Q=1.
- (25 점) K=N−1.
- (35 점) Aj<Bj (1≤j≤M),Sk<Tk (1≤k≤Q).
- (13 점) 追加の制約はない.