#include <iostream>
#include <algorithm>
using namespace std;
int road[103][11]={0};
int max(int a,int b,int c)
{
if(a<b)a=b;
if(a<c)a=c;
return a;
}
int max(int a,int b,int c,int d)
{
if(a<b)a=b;
if(a<c)a=c;
if(a<d)a=d;
return a;
}
int min(int a,int b,int c,int d)
{
if(a>b)a=b;
if(a>c)a=c;
if(a>d)a=d;
return a;
}
int main()
{
int n, l;
int mint=10000;
char t;
cin>>n>>l;
for(int i=1;i<=n;i++)
for(int j=0;j<l;j++)
{
cin>>t;
if(t=='1')
road[i][j]=1;
else road[i][j]=00;
}
for(int i=n-1;i>=0;i-=2)
{
for(int j=0;j<l;j++)
road[i][j]=min(road[i+1][j]+road[i][j]+road[i+2][j],j==0?10000:road[i+2][j-1]+road[i][j],j==(l-1)?10000:road[i][j]+road[i+2][j+1],10000);
}
for(int i=1-n%2,j=0;j<l;j++)
{
mint = mint>road[i][j]? road[i][j]:mint;
}
cout<<mint;
}