#include <iostream>
#include <cstdio>
#include <vector>

using namespace std;
const int MAXSIZE = 281010;
const int MAXN = 510;

int n, m, v[MAXN][MAXN];

int dx[4] = {-1, 0, 0, 1};
int dy[4] = {0, 1, -1, 0};

bool is_okay (int x, int y) {
    if (x < 0 || x > n) return 0;
    if (y < 0 || y > m) return 0;
    return 1;
}


vector<int> g[MAXSIZE];
vector<int> c[MAXSIZE];

int stiva[MAXSIZE], how_high[MAXSIZE], p[MAXSIZE];
int viz[MAXSIZE], sd, t;

#define pb push_back

void adauga(int nod) {
    ++t;
    while(stiva[sd] != nod) {
        c[t].pb(stiva[sd]);
        --sd;
    }
    c[t].pb(stiva[sd]);
    --sd;
}

void dfs(int nod, int bk) {
    viz[nod] = 1;
    stiva[++sd] = nod;
    p[nod] = p[bk] + 1;
    how_high[nod] = p[nod];
    int mlev = p[nod], i;

    for(i = 0; i < g[nod].size(); ++i) {
        if(viz[g[nod][i]])
            mlev = min(mlev, p[g[nod][i]]);
        else {
            dfs(g[nod][i], nod);
            how_high[nod] = min(how_high[nod], how_high[g[nod][i]]);
            if(how_high[g[nod][i]] == p[nod]) {
                adauga(g[nod][i]);
                c[t].pb(nod);
            }
        }
    }
    how_high[nod] = min(how_high[nod], mlev);
}


int main() {
    //freopen("c.in", "r", stdin);

    cin >> n >> m;


    for (int i = 1; i <= n; ++i) {
        cin.get();
        for (int j = 1; j <= m; ++j) {
            char c = cin.get();
            v[i][j] = (c == '1');
        }
    }

    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= m; ++j) {
            int nr = i * 501 + j;

            if (v[i][j] == 0) continue;

            for (int k = 0; k < 4; ++k) {
                int nx = i + dx[k];
                int ny = j + dy[k];
                if (is_okay(nx, ny) && v[nx][ny]) {
                    int nr2 = nx * 501 + ny;
                    g[nr].push_back(nr2);
                }
            }
        }
    }

    int maxNr = n * 501 + m;

    for (int i = 1; i <= maxNr; ++i)
        dfs (i, 0);

    int rez = 0;

    for (int i = 1; i <= t; ++i) {
        if (c[i].size() >= 4)
            rez += c[i].size();
    }

    cout << rez;

    return 0;
}