간선도로

H×W 격자에서 가로선 하나와 세로선 하나를 골라 각 칸 주민이 더 가까운 선까지 내는 거리의 합을 최소로 만든다.

보통5완전 탐색누적 합수학아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

JOI 시는 동서 방향으로 곧게 뻗은 도로 HH개와 남북 방향으로 곧게 뻗은 도로 WW개로 바둑판 모양으로 나뉘어 있다. 나란히 놓인 두 도로 사이의 간격은 모두 11이다. JOI 시는 이 H+WH+W개의 도로 중에서 동서 방향 도로 하나와 남북 방향 도로 하나, 모두 22개를 간선도로로 고르기로 했다.

북쪽에서 ii번째 (1iH1 \le i \le H) 동서 도로와 서쪽에서 jj번째 (1jW1 \le j \le W) 남북 도로가 만나는 지점을 교차점 (i,j)(i, j)라 하자. 교차점 (i,j)(i, j)와 북쪽에서 mm번째 (1mH1 \le m \le H) 동서 도로 사이의 거리는 im|i - m|이고, 교차점 (i,j)(i, j)와 서쪽에서 nn번째 (1nW1 \le n \le W) 남북 도로 사이의 거리는 jn|j - n|이다. 교차점 (i,j)(i, j) 근처에는 주민 Ai,jA_{i,j}명이 산다.

주민 한 명이 부담하는 값은 자기가 사는 교차점에서 두 간선도로 중 더 가까운 쪽까지의 거리이다. 간선도로 22개를 고르는 모든 방법을 놓고, 전체 주민이 부담하는 값의 합이 가장 작을 때 그 합을 구하라.

입력

입력은 표준 입력으로 다음 형식에 맞춰 주어진다.

H W
A_{1,1} A_{1,2} ... A_{1,W}
...
A_{H,1} A_{H,2} ... A_{H,W}

첫째 줄에 HHWW가 공백으로 구분되어 주어진다. 이어지는 HH개의 줄 중 ii번째 줄에는 Ai,1,Ai,2,,Ai,WA_{i,1}, A_{i,2}, \dots, A_{i,W}가 공백으로 구분되어 주어진다.

출력

전체 주민이 부담하는 값의 합이 가장 작을 때 그 합을 한 줄에 출력한다.

제한

  • 2H252 \le H \le 25
  • 2W252 \le W \le 25
  • 0Ai,j1000 \le A_{i,j} \le 100 (1iH1 \le i \le H, 1jW1 \le j \le W)