#include<bits/stdc++.h>
using namespace std;

typedef struct{int x,y;}zahyo;

char s[410][410];
int h,w,dx[4]={1,0,-1,0},dy[4]={0,-1,0,1};
vector<zahyo>past;

int sum(zahyo c){
    int ret=0;
    for(int i=0;i<4;i++){
        zahyo n;
        n.x=c.x+dx[i],n.y=c.y+dy[i];
        bool flg=false;
        for(zahyo r:past)if(n.x==r.x&&n.y==r.y)flg=true;
        if((0>n.x||n.x>=w||0>n.y||n.y>=h)||flg)continue;
        past.push_back(n);
        if(s[c.y][c.x]=='#'&&s[n.y][n.x]=='.')ret+=1+sum(n);
        if(s[c.y][c.x]=='.'&&s[n.y][n.x]=='#')ret+=sum(n);
    }
    return ret;
}

int main(){
    scanf("%d%d",&h,&w);
    for(int i=0;i<h;i++)scanf("%s",s[i]);

    int x,y,ans=0;
    for(x=0;x<w;x++)for(y=0;y<h;y++)if(s[y][x]=='#'){ //全部の＃に対して
        past.clear();
        zahyo start;
        start.x=x; start.y=y;
        ans+=sum(start);
    }
    printf("%d\n",ans);
}