//#include <iostream>
using namespace std;
const int table[] = {
1234,0,2143,2424,33412,
1324,131234,2,12314234,12342
};
/*
7 5
0 1 1 1 1
0 0 0 1 1
1 1 1 1 1
1 0 0 0 0
1 0 0 0 0
1 0 0 0 0
1 1 0 0 0
*/
int main(void){
int map[11][11]={0},x,y,i,j;
int flag = 0;
scanf("%d%d",&y,&x);
for (i=1;i<=y;i++){
for (j=1;j<=x;j++){
scanf("%d",&map[i][j]);
}
}
for (i=1;i<=y;i++){
for (j=1;j<=x;j++){
if (map[i][j]==1)
{
if ((map[i-1][j]==1)&&
(map[i][j+1]==1)&&
(map[i-1][j+1]!=1))
{
flag = flag*10+3;
//continue;
}
if ((map[i-1][j]==1)&&
(map[i][j-1]==1)&&
(map[i-1][j-1]!=1))
{
flag = flag*10+4;
//continue;
}
if ((map[i][j+1]==1)&&
(map[i+1][j]==1)&&
(map[i+1][j+1]!=1))
{
flag = flag*10+1;
//continue;
}
if ((map[i][j-1]==1)&&
(map[i+1][j]==1)&&
(map[i+1][j-1]!=1))
{
flag = flag*10+2;
//continue;
}
}
}
}
//cout <<flag<<endl;
for (i=0;i<=9;i++){
if (flag==table[i])
{
printf("%d",i);
break;
}
}
//system("pause");
return 1;
}