#include<bits/stdc++.h>
using namespace std;
int n,m,a[1005][1005],dp[1005][1005],ans=1e8;
int dfs(int x,int y)
{
if(x>n)return 0;
if(dp[x][y]!=-1)return dp[x][y];
if(y==m)return dp[x][y]=min(dfs(x+1,y)+a[y][x],dfs(x+1,1)+a[y][x]);
else return dp[x][y]=min(dfs(x+1,y)+a[y][x],dfs(x+1,y+1)+a[y][x]);
}
int main()
{
scanf("%d%d",&n,&m);
memset(dp,-1,sizeof(dp));
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
scanf("%d",&a[i][j]);
}
}
for(int i=1;i<=m;i++)ans=min(ans,dfs(1,i));
printf("%d",ans);
return 0;
}