import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int m = in.nextInt();

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


        boolean[][] visited = new boolean[n][m];
        char[][] a = new char[n][m];
        int sum = 0;
        for(int i=0;i<n;i++){
            String s = in.next();
            for(int j=0;j<m;j++){
                a[i][j]=s.charAt(j);
            }
        }
        for(int i=1;i<n;i++){
            for(int j=0;j<m;j++){
                if(a[i][j]=='0' && !visited[i][j]) {
                    int count = 0;
                    Queue<int[]> q = new ArrayDeque<>();
                    q.offer(new int[]{i, j});
                    boolean hasBound = false;
                    while (!q.isEmpty()) {
                        int[] arr = q.poll();
                        int x = arr[0], y = arr[1];
                        if(x<0 || x>n-1 || y<0 ||y>m-1){
                            continue;
                        }
                        if (visited[x][y]) {
                            continue;
                        }
                        if (a[x][y]=='*'){
                            continue;
                        }
                        if(a[x][y]=='0'){
                            visited[x][y]=true;
                            if(x==0 || x==n-1 || y==0 || y==m-1){
                                hasBound = true;
                            }
                            count++;
                            for(int k=0;k<4;k++){
                                q.offer(new int[]{x+dx[k],y+dy[k]});
                            }
                        }
                    }
                    if(!hasBound){
                        sum+=count;
                    }
                }
            }
        }
        System.out.println(sum);
    }

}