zz和kk是好朋友,准备好好锻炼身体,他们来到健身房网格状的训练场,可以把训练场看做是一个n行、m列的矩阵a。设第i行第j列数字a[i][j]表示锻炼途中达到a[i][j]点所燃烧的卡路里。
zz从位于第1行第1列的位置开始锻炼,最终他需要到[n][m]位置。当完成a[i][j]位置的锻炼后,他可以去锻炼 a[i+1][j] 或 a[i][j+1]。同样,kk从锻炼 a[n][1] 开始锻炼,他需要以锻炼 a[1][m] 结束。从位置a[i][j]完成锻炼后,她去a[i][j+1]或a[i-1][j]。
zz和kk在同一个训练场锻炼身体,他们一定会在某一个位置相遇,在相遇的位置他两会相互打招呼、讨论下国家大事和学习心得、都不锻炼,然后他们俩都会进入下一位置锻炼。
请为zz和kk计划一次锻炼,尽可能使两人所燃烧的卡路里的和最大。请注意,zz和kk可以以不同的速度进行锻炼,因此他们用来到达满足的数量可能会有所不同。
输入的第一行n,m(3<=n,m<=10^3),二维矩阵的行与列。
接下来n行每行m个数据。a[i][j] (0≤a[i][j]≤105)
输出一行,输出两人独自总共走的步数
输入样例:
3 3 100 100 100 100 1 100 100 100 100
800
注意:
zz将选择[1][1]→[1][2]→[2][2]→[3][2]→[3][3]。kk将选择a[3][1]→a[2][1]→a[2][2]→a[2][3]→a[1][3]。
3 3
100 100 100
100 1 100
100 100 100
800