#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<algorithm>
using namespace std;
int n,m;
#define MIN -65530
int a[110][110];
int d[110][110];//到达此点之后还能获得的最大值
void dp(int i,int j)
{
int jj;
for(jj=j+1;jj<=m-n+i+1;jj++)
{
if(d[i+1][jj]==MIN)
{
dp(i+1,jj);
}
if(d[i][j]<d[i+1][jj]+a[i+1][jj])
{
d[i][j]=d[i+1][jj]+a[i+1][jj];
}
}
}
int main()
{
while(scanf("%d %d",&n,&m)!=EOF)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%d",&a[i][j]);
d[i][j]=MIN;
}
}
for(i=0;i<n;i++)
{
d[i][m-1]=0;
}
int mmax=MIN;
for(j=0;j<=m-n;j++)
{
dp(0,j);
if(mmax<d[0][j]+a[0][j])
{
mmax=d[0][j]+a[0][j];
}
}
printf("%d\n",mmax);
}
return 0;
}