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

int main() {
  int H,W;
  cin >> H >> W;
  char a[H][W];
  for(int i=0; i<H; i++){
    for(int j=0; j<W; j++){
      cin >> a[i][j];
    }
  }
  int ans = 0;
  for(int i=0; i<H; i++){
    for(int j=1;j<W; j++){
      if(a[i][j-1] == '.' && a[i][j] == '.'){
       ans++;
      }
    }
  }
    for(int j=0; j<W; j++){
      for(int i=0; i<H-1; i++){
        if(a[i][j] == '.' && a[i+1][j] == '.'){
          ans++;
        }
      }
    }
  cout << ans << endl;
}

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

#define rep(i, n) for (int i = 0; i < (int) (n); i++)
#define Rrep(i,n) for(int i=((int)n-1); i>=0; i--)
#define all(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define INF 2e15
#define MOD 10e9+7

typedef vector<int> vint;
typedef long long ll;



int main()
{
        cin.tie(nullptr);
        ios_base::sync_with_stdio(false);
        cout << fixed << setprecision(15);

        int h,w;
        cin>>h>>w;

        char map[h][w];

        rep(i,h){
                string s;
                cin>>s;
                rep(j,w){
                        map[i][j]=s[j];
                }
        }
        int res=0;

        rep(i,h){
                //cout<<"i="<<i<<endl;
                rep(j,w){
                        //cout<<"j="<<j<<endl;
                        if(map[i][j]=='.'){
                                //cout<<i<<j<<endl;
                                if(map[i+1][j]=='.'&&i+1<h){res++;}
                                if(map[i][j+1]=='.'&&j+1<w){res++;}
                        }
                        else{continue;}
                }
        }
        cout<<res<<endl;
        return 0;
}