import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
static int sum;
static int n;
static int m;
static int[][] nums;
static int[][] vivt;
static int ans=Integer.MAX_VALUE;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
m=scan.nextInt();
n=scan.nextInt();
nums=new int[n][m];
vivt=new int[n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
nums[i][j]=scan.nextInt();
sum+=nums[i][j];//把和累加起来
}
}
if(sum%2!=0){System.out.println("0");return ;}
dfs(0,0,0,0);
System.out.println(ans);
scan.close();
}
//遍历
//参数,遍历上下左右,计数器,格子的数量,边界值n ,m
public static void dfs(int x,int y,int num,int temmp){
if(x<0||x>=n||y<0||y>=m||vivt[x][y]==1||num>sum/2){
return ;
}
if(num==sum/2){
ans=Math.min(ans,temmp);
return ;
}
vivt[x][y]=1;
num+=nums[x][y];
dfs(x+1,y,num,temmp+1);
dfs(x-1,y,num,temmp+1);
dfs(x,y+1,num,temmp+1);
dfs(x,y-1,num,temmp+1);
vivt[x][y]=0;
}
}