#include
#include
using namespace std;
vector<pair<int, int>> directions = { {-1, 0}, {1, 0}, {0, -1}, {0, 1} };
void infect(vector<vector>& matrix, int x, int y, int m, int n) {
if (x < 0 || x >= m || y < 0 || y >= n)
return;
if (matrix[x][y] == 0) {
matrix[x][y] = 1;
for (int i = 0; i < 4; i++) {
int nx = x + directions[i].first;
int ny = y + directions[i].second;
infect(matrix, nx, ny, m, n);
}
}
}
int count_non_ones(int m, int n, vector<vector>& matrix) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (matrix[i][j] == 2) {
infect(matrix, i, j, m, n);
}
}
}
matrix[0][0] = 1;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (matrix[i][j] == 1) {
for (int k = 0; k < 4; k++) {
int nx = i + directions[k].first;
int ny = j + directions[k].second;
if (nx >= 0 && nx < m && ny >= 0 && ny < n && matrix[nx][ny] == 0) {
matrix[nx][ny] = 1;
}
}
}
}
}
int count = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (matrix[i][j] != 1) {
count++;
}
}
}
return count;
}
int main() {
int m, n;
cin >> m >> n;
vector<vector<int>> matrix(m, vector<int>(n));
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
cin >> matrix[i][j];
}
}
int result = count_non_ones(m, n, matrix);
cout << result << endl;
return 0;
}