#include<stdlib.h>
#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<queue>
#include<vector>
#define LL long long
#define re register
using namespace std;
const LL MAXN=2e3+10;
LL a[MAXN][MAXN];
LL ans,T,n;
LL dp[MAXN][MAXN];
int main() {
std::ios::sync_with_stdio(false);
ios::sync_with_stdio(false), cin.tie(0);
cin>>T>>n;
ans=0x7fffffff;
for(int j=1; j<=n; j++) {
for(int i=1; i<=T; i++) {
cin>>a[j][i];
}
}
for(int i=1;i<=n;i++)
dp[i][1]=a[i][1];
for(int i=1;i<=T-1;i++){
for(int j=1;j<=n;j++){
if(j==1) {
dp[1][i+1]=dp[1][i]+a[1][i+1];
dp[2][i+1]=dp[1][i]+a[2][i+1];
}
else {
dp[1][i+1]=min(dp[1][i+1],dp[j][i]+a[1][i+1]);
dp[j][i+1]=min(dp[j][i+1],dp[j][i]+a[j][i+1]);
dp[j+1][i+1]=dp[j][i]+a[j+1][i+1];
}
}
}
for(int i=1;i<=n;i++)
ans=min(ans,dp[i][T]);
cout<<ans<<endl;
return 0;
}