
#include<bits/stdc++.h>
using namespace std;
int m,n;
int C=0;
int ans=1e9;
int vis[10][10];
int arr[10][10];
void dfs(int i,int j,int count,int sum){
if(sum==C/2){
ans=min(ans,count);
return;
}
if(sum>C/2) return;
vis[i][j]=1;
if(i+1<m&&vis[i+1][j]==0) dfs(i+1,j,count+1,sum+arr[i][j]);
if(i-1>=0&&vis[i-1][j]==0) dfs(i-1,j,count+1,sum+arr[i][j]);
if(j+1<n&&vis[i][j+1]==0) dfs(i,j+1,count+1,sum+arr[i][j]);
if(j-1>=0&&vis[i][j-1]==0) dfs(i,j-1,count+1,sum+arr[i][j]);
vis[i][j]=0;
}
int main(){
memset(vis,0,sizeof(vis));
cin>>n>>m;
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
cin>>arr[i][j];
C+=arr[i][j];
}
}
dfs(0,0,0,0);
if(ans==1e9){
ans=0;
}
cout<<ans<<endl;
}