체스에는 나이트라는 기물이 있다. 나이트는 다른 기물처럼 직선으로 움직이지 않고 L자 모양으로 뛴다. 정확히 말하면 나이트는 (r1−r2)2+(c1−c2)2=5가 성립할 때에만 칸 (r1,c1)에서 칸 (r2,c2)로 뛸 수 있다.
이 문제에서는 나이트 한 마리가 높이 H, 너비 W인 거대한 체스판의 왼쪽 위 칸 (1,1)에서 오른쪽 아래 칸 (H,W)까지 이동한다.
제약은 두 가지다.
이 조건에서 나이트가 왼쪽 위 칸에서 오른쪽 아래 칸까지 가는 서로 다른 방법의 수를 구한다. 답이 매우 커질 수 있으므로 소수 10007로 나눈 나머지를 출력한다.
첫째 줄에 정수 N이 주어진다. 이어서 N개의 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 줄에는 정수 H, W, R가 주어진다. 다음 R개의 줄에는 바위 한 개의 행 번호 r와 열 번호 c가 주어진다. (1,1)과 (H,W)에는 바위가 없고, 두 바위가 같은 칸에 놓이는 일도 없다.
제한
각 테스트 케이스마다 한 줄을 출력한다. 줄 앞에 Case #X: 를 붙이는데, X는 1부터 시작하는 테스트 케이스 번호다. 그 뒤에 목표 칸에 도달하는 방법의 수를 10007로 나눈 나머지를 출력한다.