시간 제한
메모리 제한
시간 제한
2초
메모리 제한
128 MB
격자형 게임에서는 어떤 유닛을 한 위치에서 다른 위치까지 이동시켜야 하는 경우가 있다. 맵을 N행 M열 격자로 보고, 유닛을 A행 B열 직사각형으로 생각하자. 유닛의 위치는 그 직사각형의 왼쪽 위 칸으로 나타낸다. 다음 그림은 5행 5열 맵과 2행 2열 유닛의 한 예이다. S는 시작 위치, E는 도착 위치를 뜻한다.

유닛은 한 번에 한 칸씩 위, 아래, 왼쪽, 오른쪽 네 방향으로 이동할 수 있다. 단, 이동한 뒤 유닛의 일부라도 장애물이 있는 칸을 덮으면 그 이동은 허용되지 않는다. 위 그림에서는 시작 위치에서 위로 이동하면 유닛이 장애물과 겹치므로 허용되지 않는다. 또한 유닛의 일부가 맵 밖으로 나가는 이동도 허용되지 않는다.
맵 정보와 유닛 정보가 주어질 때, 유닛을 시작 위치에서 도착 위치까지 이동시키기 위해 필요한 최소 이동 횟수를 구하라.
첫째 줄에 다섯 정수 N, M, A, B, K가 주어진다. 1 <= N, M <= 500, 1 <= A, B <= 10, 0 <= K <= 100,000이다.
다음 K개 줄에는 장애물이 있는 칸의 행 번호와 열 번호가 하나씩 주어진다. 행과 열은 왼쪽 위 칸을 1로 하여 센다.
그 다음 두 줄에는 시작 위치와 도착 위치가 차례로 주어진다. 각 위치는 유닛의 왼쪽 위 칸의 행 번호와 열 번호로 주어진다. 시작 위치와 도착 위치는 서로 다르다.
시작 위치의 칸 자체에는 장애물이 없으며, 주어지는 왼쪽 위 위치들은 맵의 범위 안에 있다.
최소 이동 횟수를 출력한다. 도착 위치까지 이동할 수 없으면 -1을 출력한다.