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);
}
}