CCA的矩阵
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

很久很久以后的某一天,老鼠泛滥成灾啦!
有某一个 n×n 的矩形内布满了老鼠,具体来说,(i,j) 上有 w(i,j)只老鼠。
万幸的是,你有一个 k×k 的锤子,一锤子砸下去可以把它覆盖到的所有老鼠清除。
遗憾的是,这个锤子只能斜着锤,形象地说,对于一个 3×3 的锤子,它能覆盖到的区域如下:
- - * - -
- * * * -
* * * * *
- * * * -
- - * - -
你想知道,自己一锤子砸下去,最多能清除多少只老鼠。

输入描述:

第一行两个数 n和k 。
之后的 n 行,每行 n 个数,第 i 行 第 j 个数表示在矩形的这个位置有多少只老鼠。

输出描述:

一行,一个整数表示最多能清除的老鼠数量。
示例1

输入

复制
3 2
0 1 1
1 0 1
0 1 0

输出

复制
4

备注:

n <= 2000 , k <= min(n, 100),每个点的老鼠数量 <= 10^9