#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ul unsigned long long
ll mod = 1e9+7;
const int N = 1e3+5;
int MOD = 998244353;
int bit[200000];
int n, m;
//vector<int> adj[N];
int a[N][N];
bool visit[N][N];
int sX[] = {0, 0, 1, -1};
int sY[] = {1, -1, 0, 0};
int dem = 1;
void nhap(){
cin >> n >> m;
for(int i= 1 ; i <= n ; i++){
for(int j= 1; j <= m ; j++){
cin >> a[i][j];
}
}
}
void bfs(int sx, int sy) {
queue < pair <int, int> > q;
q.push({sx, sy});
visit[sx][sy] = true;
while (!q.empty()) {
int x = q.front().first;
int y = q.front().second;
q.pop();
for (int i = 0; i < 4; ++i) {
int u = x + sX[i];
int v = y + sY[i];
if (u > n || u < 1) continue;
if (v > m || v < 1) continue;
if (a[u][v] == 0 && !visit[u][v]) {
visit[u][v] = true;
q.push({u, v});
dem++;
}
}
}
}
int main() {
//freopen("CSBN.INP", "r", stdin);
//freopen("CSBN.OUT", "w", stdout);
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
nhap();
if(a[1][1] == 1){
cout << -1;
}
else{
bfs(1,1);
cout << dem;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHVsIHVuc2lnbmVkIGxvbmcgbG9uZwoKbGwgbW9kID0gMWU5Kzc7CmNvbnN0IGludCBOID0gMWUzKzU7CmludCBNT0QgPSA5OTgyNDQzNTM7CmludCBiaXRbMjAwMDAwXTsKaW50IG4sIG07Ci8vdmVjdG9yPGludD4gYWRqW05dOwppbnQgYVtOXVtOXTsKYm9vbCB2aXNpdFtOXVtOXTsKaW50IHNYW10gPSB7MCwgMCwgMSwgLTF9OwppbnQgc1lbXSA9IHsxLCAtMSwgMCwgMH07CmludCBkZW0gPSAxOwp2b2lkIG5oYXAoKXsKCWNpbiA+PiBuID4+IG07Cglmb3IoaW50IGk9IDEgOyBpIDw9IG4gOyAgaSsrKXsKCQlmb3IoaW50IGo9IDE7IGogPD0gbSA7IGorKyl7CgkJCWNpbiA+PiBhW2ldW2pdOwoJCX0KCX0KfQp2b2lkIGJmcyhpbnQgc3gsIGludCBzeSkgeyAKICAgIHF1ZXVlIDwgcGFpciA8aW50LCBpbnQ+ID4gcTsKICAgIHEucHVzaCh7c3gsIHN5fSk7CiAgICB2aXNpdFtzeF1bc3ldID0gdHJ1ZTsKICAgIHdoaWxlICghcS5lbXB0eSgpKSB7CiAgICAgICAgaW50IHggPSBxLmZyb250KCkuZmlyc3Q7CiAgICAgICAgaW50IHkgPSBxLmZyb250KCkuc2Vjb25kOwogICAgICAgIHEucG9wKCk7CgogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgKytpKSB7CiAgICAgICAgICAgIGludCB1ID0geCArIHNYW2ldOwogICAgICAgICAgICBpbnQgdiA9IHkgKyBzWVtpXTsKCiAgICAgICAgICAgIGlmICh1ID4gbiB8fCB1IDwgMSkgY29udGludWU7CiAgICAgICAgICAgIGlmICh2ID4gbSB8fCB2IDwgMSkgY29udGludWU7CgogICAgICAgICAgICBpZiAoYVt1XVt2XSA9PSAwICYmICF2aXNpdFt1XVt2XSkgewogICAgICAgICAgICAgICAgdmlzaXRbdV1bdl0gPSB0cnVlOwogICAgICAgICAgICAgICAgcS5wdXNoKHt1LCB2fSk7CiAgICAgICAgICAgICAgICBkZW0rKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQppbnQgbWFpbigpIHsKCS8vZnJlb3BlbigiQ1NCTi5JTlAiLCAiciIsIHN0ZGluKTsKCS8vZnJlb3BlbigiQ1NCTi5PVVQiLCAidyIsIHN0ZG91dCk7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwoJY2luLnRpZSgwKTsKCWNvdXQudGllKDApOwoJCiAgICBuaGFwKCk7CiAgICBpZihhWzFdWzFdID09IDEpewogICAgCWNvdXQgPDwgLTE7Cgl9CgllbHNlewogICAgYmZzKDEsMSk7CiAgICAKCWNvdXQgPDwgZGVtOwoJfQp9Cg==