#include<bits/stdc++.h>
#define pii pair<int,int>
#define fi first
#define se second
#define int long long 
using namespace std;
const int mx=1e6+5;
inline int read() {
	int x=0,f=1; char c=getchar();
	while(c<'0'||c>'9') {if(c=='-') f=-1;c=getchar();}
	while(c>='0'&&c<='9') {x=(x<<1)+(x<<3)+c-'0';c=getchar();}
	return x*f;
}
int L,R,res;
int prime[mx],phi[mx],c[mx],num,cnt,tot;
void write(int x) {
	if(x<10) {
		putchar(x+'0');
		return;
	}
	write(x/10);
	putchar(x%10+'0');
}
void dfs(int x,int mul,int f,int m) {
	if(mul>m) return;
	if(x>num) {
		tot+=(m/mul)*f;
		return;
	}
	dfs(x+1,mul,f,m);
	dfs(x+1,mul*c[x],(f==1)?-1:1,m);
}
int solve(int n,int m) {
	if(n>m) swap(n,m);
	int sum=0;
	for(int i=2;i<=n;i++) {
		num=0; int tmp=i;
		for(int j=1;j<=cnt&&prime[j]<=sqrt(tmp);j++) {
			if(tmp%prime[j]==0) {
				c[++num]=prime[j];
				while(tmp%prime[j]==0) tmp/=prime[j];
			}
		}
		if(tmp>1) c[++num]=tmp;
		tot=0;
		for(int j=1;j<=num;j++) dfs(j+1,c[j],1,m);
		sum+=tot;
	}
	for(int i=2;i<=n;i++) {
		sum-=m/i;
	}
	for(int i=2;i<=m;i++) {
		sum-=n/i;
	}
//	printf("%lld %lld %lld\n",n,m,sum+n);
	return sum+(n-1);
}
signed main() {
	L=read(),R=read();
	for(int i=2;i<=R;i++) {
		if(!phi[i]) prime[++cnt]=i,phi[i]=i-1;
		for(int j=1;j<=cnt&&i*prime[j]<=R;j++) {
			if(i%prime[j]==0) {
				phi[i*prime[j]]=phi[i]*prime[j];
			}
			else {
				phi[i*prime[j]]=phi[i]*(prime[j]-1); 
			}
		}
	} 
	if(L==1) {
		res=solve(R,R);
	}
	else {
		res=solve(R,R)-2*solve(L-1,R)+solve(L-1,L-1);
	}
	write(res);
} 
#include <bits/stdc++.h>

using namespace std;
#define rep(i,n) for(long long i=0; i<(long long)(n);i++)
//rep…「0からn-1まで」の繰り返し
#define rep2(i,s,n) for(long long i=s; i<=(long long)(n);i++)
//rep2…「sからnまで」の繰り返し
#define repr(i,s,n) for(long long i=s;i>=(long long)(n);i--)
//repr…「ｓからnまで」の降順の繰り返し

typedef long long ll;

const int inf = 1e9+7;
const int mod = 1e9+7;


int main() {
    int h,w;
    cin>>h>>w;

    vector<string>s(h);
    rep(i,h)cin>>s[i];

    int cnt=0;
    rep(i,h){
        rep2(j,0,w-2){
            if(s[i][j]=='.'&&s[i][j+1]=='.'){
                cnt++;
            }
        }
    }

    rep(i,w){
        rep2(j,0,h-2){
            if(s[j][i]=='.'&&s[j+1][i]=='.'){
                cnt++;
            }
        }
    }
    cout<<cnt<<endl;
}
