#include <iostream>
using namespace std;
struct P {int x;int y;};P cp,w,r[52][52];int n, m, s, l;int b[52][52],v[52][52],c[52][52],fr[52][52];
P xy(P p, int ak) {P wq;switch(ak){case 0: wq.x = p.x;wq.y = p.y + 1;break;case 1: wq.x = p.x + 1;wq.y = p.y;break;case 2: wq.x = p.x;wq.y = p.y - 1;break;
case 3: wq.x = p.x - 1;wq.y = p.y;break;}return wq;}int gh(P p){if((p.x == w.x) && (p.y == w.y) && l > 2){l++;return 1;}return 0;}
int tw(P p){return fr[p.x][p.y] == 0 ? 0 : c[p.x][p.y] == 1 ? 0 : 1;}int aa() {int f = 0;for(int z = 0; z < 4; z++){
P g = xy(cp, s);if(gh(g))return 1;if(tw(g)){P h = cp;cp = g;r[cp.x][cp.y] = h;c[h.x][h.y] = 1;l++;f = 1;break;}s = (s + 1)%4;}
if(!f) {fr[cp.x][cp.y] = 0;l--;cp = r[cp.x][cp.y];}return 0;}int main(){cin>>n>>m;char st[m+1];for(int j=0;j<m+2;j++)b[0][j]=0;
for(int i=1;i<n+1;i++){b[i][0]=0;cin>>st;for(int j=1;j<m+1;j++)b[i][j]=st[j-1]=='1'?1:0;b[i][m+1]=0;}for(int j=0;j<m+2;j++)
b[n+1][j]=0;for(int i=1;i<n+1;i++)for(int j=1;j<m+1;j++)v[i][j] = 0;for(int i=1;i<n+1;i++)for(int j=1;j<m+1;j++){l=s=0;for(int ii=1;ii<n+1;ii++)
for(int jj=1;jj<m+1;jj++){c[ii][jj]=0;fr[ii][jj]=b[ii][jj];}w.x=i;w.y=j;cp=w;int e=0;while((fr[cp.x][cp.y]!=0)&&!e)e=aa();if(l>= 4)v[i][j]=1;}int k=0;
for(int i=1;i<n+1;i++)for(int j=1;j<m+1;j++)if(v[i][j])k++;cout<<k;return 0;}