사탕 배달
시간 제한3초메모리 제한1024 MB
아즈가 아래 방향과 오른쪽 방향으로만 움직여 N x M 격자의 K개 집을 모두 방문하는 최소 시간을 구합니다. 배달을 다시 시작할 때마다 (N, M)에서 (1, 1)로 돌아가는 데 C[N][M]의 시간이 듭니다.
문제
안즈가 전 재산을 투자해 시작한 사탕 사업이 입소문을 타고 큰 호황을 누리고 있다! 인건비를 아끼려고, 안즈는 공장에서 만든 사탕을 직접 배달하기로 한다.

사탕을 배달하는 지역은 크기의 격자이다. 격자의 행 열에 있는 칸을 라고 하자.
한 번의 배달은 에서 출발해 에서 끝나야 한다. 이 지역의 도로는 모두 일방통행이라서, 배달할 때는 아래쪽이나 오른쪽으로만 이동해야 한다. 즉, 에 있다면 나 로만 이동할 수 있다. 에서 다른 칸으로 이동하는 데는 의 시간이 걸린다.
안즈는 총 개의 집에 사탕을 배달해야 한다. 안즈가 집이 있는 칸으로 이동하면, 그 집의 배달은 끝난 것이다. 한 번의 배달로 모든 집을 들르지 못할 수도 있으므로, 배달은 여러 번 진행할 수 있다. 다시 배달을 시작하려면 에서 로 돌아와야 하며, 이 이동에는 의 시간이 걸린다. 배달은 원하는 만큼 진행할 수 있으며, 배달 횟수를 최소화할 필요는 없다.
안즈는 모든 집에 사탕 배달을 마친 뒤 까지 이동해 배달을 끝내려고 한다. 이때 걸리는 시간을 알고 싶지만, 직접 계산하기에는 너무 번거로워 여러분에게 해결을 부탁했다.
입력
첫 번째 줄에 , , 가 공백으로 구분되어 주어진다. (; )
이어서 개의 줄에 걸쳐 수 개가 공백으로 구분되어 주어진다. 번째 줄의 번째 수는 이다. ()
이어서 개의 줄에 걸쳐 번째 집의 위치 가 공백으로 구분되어 주어진다. 모든 집의 위치는 서로 다르며, 이나 에는 집이 없다. (; )
출력
안즈가 모든 집에 사탕 배달을 마친 뒤 까지 이동해 배달을 끝내기까지 걸리는 시간의 최솟값을 출력한다.