#include <iostream>
int i, j, k, A[1004004], B[1004004], N, M;
void F(int x) {
B[x] = 1;
--k;
if (A[x-(M+2)] == 4 && B[x-(M+2)] == 0) F(x-(M+2));
if (A[x+(M+2)] == 2 && B[x+(M+2)] == 0) F(x+(M+2));
if (A[x-1] == 1 && B[x-1] == 0) F(x-1);
if (A[x+1] == 3 && B[x+1] == 0) F(x+1);
}
int main() {
std::cin >> N >> M;
k = N*M;
for (i=1; i<=N; ++i)
for (j=1; j<=M; ++j)
std::cin >> A[i*(M+2)+j];
if ((A[M+3] == 2 || A[M+3] == 3) && B[M+3] == 0) F(M+3);
if ((A[M+2+M] == 1 || A[M+2+M] == 2) && B[M+2+M] == 0) F(M+2+M);
if ((A[N*(M+2)+M] == 1 || A[N*(M+2)+M] == 4) && B[N*(M+2)+M] == 0) F(N*(M+2)+M);
if ((A[N*(M+2)+1] == 3 || A[N*(M+2)+1] == 4) && B[N*(M+2)+1] == 0) F(N*(M+2)+1);
for (i=2; i<M; ++i)
if (A[M+2+i] == 2 && B[M+2+i] == 0) F(M+2+i);
for (i=2; i<M; ++i)
if (A[N*(M+2)+i] == 4 && B[N*(M+2)+i] == 0) F(N*(M+2)+i);
for (i=2; i<N; ++i)
if (A[i*(M+2)+1] == 3 && B[i*(M+2)+1] == 0) F(i*(M+2)+1);
for (i=2; i<N; ++i)
if (A[i*(M+2)+M] == 1 && B[i*(M+2)+M] == 0) F(i*(M+2)+M);
std::cout << k;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgogICAgCmludCBpLCBqLCBrLCBBWzEwMDQwMDRdLCBCWzEwMDQwMDRdLCBOLCBNOwogICAgCnZvaWQgRihpbnQgeCkgewogICAgQlt4XSA9IDE7CiAgICAtLWs7CiAgICBpZiAoQVt4LShNKzIpXSA9PSA0ICYmIEJbeC0oTSsyKV0gPT0gMCkgRih4LShNKzIpKTsKICAgIGlmIChBW3grKE0rMildID09IDIgJiYgQlt4KyhNKzIpXSA9PSAwKSBGKHgrKE0rMikpOwogICAgaWYgKEFbeC0xXSA9PSAxICYmIEJbeC0xXSA9PSAwKSBGKHgtMSk7CiAgICBpZiAoQVt4KzFdID09IDMgJiYgQlt4KzFdID09IDApIEYoeCsxKTsKfQogICAgCmludCBtYWluKCkgewogICAgc3RkOjpjaW4gPj4gTiA+PiBNOwogICAgayA9IE4qTTsKICAgIAogICAgZm9yIChpPTE7IGk8PU47ICsraSkgCiAgICAgICAgZm9yIChqPTE7IGo8PU07ICsraikKICAgICAgICAgICAgc3RkOjpjaW4gPj4gQVtpKihNKzIpK2pdOwoKICAgIGlmICgoQVtNKzNdID09IDIgfHwgQVtNKzNdID09IDMpICYmIEJbTSszXSA9PSAwKSBGKE0rMyk7CiAgICBpZiAoKEFbTSsyK01dID09IDEgfHwgQVtNKzIrTV0gPT0gMikgJiYgQltNKzIrTV0gPT0gMCkgRihNKzIrTSk7CglpZiAoKEFbTiooTSsyKStNXSA9PSAxIHx8IEFbTiooTSsyKStNXSA9PSA0KSAmJiBCW04qKE0rMikrTV0gPT0gMCkgRihOKihNKzIpK00pOwogICAgaWYgKChBW04qKE0rMikrMV0gPT0gMyB8fCBBW04qKE0rMikrMV0gPT0gNCkgJiYgQltOKihNKzIpKzFdID09IDApIEYoTiooTSsyKSsxKTsKICAgIGZvciAoaT0yOyBpPE07ICsraSkKICAgICAgICBpZiAoQVtNKzIraV0gPT0gMiAmJiBCW00rMitpXSA9PSAwKSBGKE0rMitpKTsKICAgIGZvciAoaT0yOyBpPE07ICsraSkKICAgICAgICBpZiAoQVtOKihNKzIpK2ldID09IDQgJiYgQltOKihNKzIpK2ldID09IDApIEYoTiooTSsyKStpKTsKICAgIGZvciAoaT0yOyBpPE47ICsraSkKICAgICAgICBpZiAoQVtpKihNKzIpKzFdID09IDMgJiYgQltpKihNKzIpKzFdID09IDApIEYoaSooTSsyKSsxKTsKICAgIGZvciAoaT0yOyBpPE47ICsraSkKICAgICAgICBpZiAoQVtpKihNKzIpK01dID09IDEgJiYgQltpKihNKzIpK01dID09IDApIEYoaSooTSsyKStNKTsKICAgIHN0ZDo6Y291dCA8PCBrOwogICAgcmV0dXJuIDA7Cn0=