생태 보존 구역

N 곱하기 N 격자에 나무 수가 주어질 때, 정확히 M개(M은 10 이하) 칸을 연결되게 골라 나무 수 합의 최댓값을 구한다.

어려움8동적 계획법DFS구현완전 탐색아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

폴리미노고니아 왕국은 최근 생태법을 통과시켰다. 모든 농장은 면적의 정해진 비율을 보존 구역으로 남겨야 하고, 그 안에 나무를 최대한 많이 보존해야 한다. 야생 동물이 보존 구역 안을 자유롭게 돌아다녀야 하므로 보존 구역은 연결되어 있어야 한다.

폴리미노고니아의 농장은 항상 한 칸이 1헥타르인 정사각형 칸 N×NN \times N 개로 이루어진 격자다. 그림은 N=5N = 5 인 농장을 나타낸다. 보존 구역은 정확히 MM 개의 칸을 덮어야 하고, 그림에서는 M=6M = 6 이다. 보존 구역은 상하좌우로 연결되어야 한다. 즉 보존한 두 칸을 아무렇게나 골라도, 보존한 칸만 지나는 상하좌우 이동으로 한쪽에서 다른 쪽까지 갈 수 있어야 한다. 보존하지 않는 구역은 연결되지 않아도 된다.

농부는 각 칸에 있는 나무의 수를 알고 있다. MM 개의 칸으로 이루어진 보존 구역에 남길 수 있는 나무 수의 최댓값을 구하는 프로그램을 작성하라. 그림의 농장에서는 나무 377그루를 보존할 수 있다.

입력

첫째 줄에 정수 NNMM 이 주어진다 (2N502 \le N \le 50, 1M101 \le M \le 10, MN2M \le N^2). 다음 NN 개 줄에는 각각 정수 NN 개가 주어지며, 농장의 각 칸에 있는 나무의 수를 나타낸다. 각 값은 1 이상 1000 이하다.

출력

보존할 수 있는 나무 수의 최댓값을 한 줄에 출력한다.