생태 보존 구역
시간 제한2초메모리 제한512 MB
N 곱하기 N 격자에 나무 수가 주어질 때, 정확히 M개(M은 10 이하) 칸을 연결되게 골라 나무 수 합의 최댓값을 구한다.
문제
폴리미노고니아 왕국은 최근 생태법을 통과시켰다. 모든 농장은 면적의 정해진 비율을 보존 구역으로 남겨야 하고, 그 안에 나무를 최대한 많이 보존해야 한다. 야생 동물이 보존 구역 안을 자유롭게 돌아다녀야 하므로 보존 구역은 연결되어 있어야 한다.

폴리미노고니아의 농장은 항상 한 칸이 1헥타르인 정사각형 칸 개로 이루어진 격자다. 그림은 인 농장을 나타낸다. 보존 구역은 정확히 개의 칸을 덮어야 하고, 그림에서는 이다. 보존 구역은 상하좌우로 연결되어야 한다. 즉 보존한 두 칸을 아무렇게나 골라도, 보존한 칸만 지나는 상하좌우 이동으로 한쪽에서 다른 쪽까지 갈 수 있어야 한다. 보존하지 않는 구역은 연결되지 않아도 된다.
농부는 각 칸에 있는 나무의 수를 알고 있다. 개의 칸으로 이루어진 보존 구역에 남길 수 있는 나무 수의 최댓값을 구하는 프로그램을 작성하라. 그림의 농장에서는 나무 377그루를 보존할 수 있다.
입력
첫째 줄에 정수 과 이 주어진다 (, , ). 다음 개 줄에는 각각 정수 개가 주어지며, 농장의 각 칸에 있는 나무의 수를 나타낸다. 각 값은 1 이상 1000 이하다.
출력
보존할 수 있는 나무 수의 최댓값을 한 줄에 출력한다.