Time limit: 2.0s , Memory limit: 256M , Points: 2500 (partial)

Cho đơn đồ thị vô hướng, liên thông, không có trọng số bao gồm 2n đỉnh, các đỉnh được đánh số từ 0 đến 2n1. Các cạnh của đồ thị được xây dựng như sau:

  • Có cạnh nối giữa hai đỉnh 02n1 của đồ thị.
  • Có cạnh nối giữa hai đỉnh uu+1 của đồ thị với mọi 0u<2n1.
  • Có cạnh nối giữa hai đỉnh kiki+n của đồ thị với mọi 1im.

Vì vậy, đồ thị có tổng cộng 2n+m cạnh.

Thực hiện q truy vấn, với mỗi truy vấn thứ j (1jq), yêu cầu tìm độ dài đường đi ngắn nhất giữa hai đỉnh xjyj.

Input

  • Dòng đầu tiên chứa ba số nguyên n,m,q (2n5×108 ; 1m5×105 ; 1q2×104).
  • Dòng thứ hai chứa m số nguyên ki (0k1<k2<...<kmn1).
  • q dòng tiếp theo, dòng thứ j chứa hai số nguyên xjyj (0xj,yj2n1).

Output

  • Với mỗi truy vấn, in ra độ dài đường đi ngắn nhất giữa hai đỉnh xjyj trên một dòng.

Examples

Sample Input
Copy
3 2 3
0 2
1 5
2 0
4 1
Sample Output
Copy
2
2
3

Scoring

  • Subtask 1 500 điểm: n,m,q1000
  • Subtask 2 750 điểm: n107 ; m,q1000
  • Subtask 3 750 điểm: xj=0 với mọi truy vấn
  • Subtask 4 500 điểm: Không có ràng buộc gì thêm

Notes

Trong ví dụ, đồ thị được mô tả như trong hình sau:

drawing

Comments