#include <bits/stdc++.h>
using ll = long long;
void solve(){
int n, m;
std::cin >> n >> m;
std::vector<std::string> g(n);
for(int i = 0; i < n; i++){
std::cin >> g[i];
}
std::vector h(n, std::vector<int>(m, 0));
std::vector l(n, std::vector<int>(m, 0));
std::vector dp(n, std::vector<ll>(m, 0));
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
if(g[i][j] == '*') continue;
h[i][j] = 1;
if(i > 0 && g[i - 1][j] == '.') h[i][j] += h[i - 1][j];
}
}
for(int i = 0; i < n; i++){
for(int j = 1 ; j < m; j++){
if(h[i][j - 1] < h[i][j]){
l[i][j] = j;
}
else if(h[i][j - 1] == h[i][j]){
l[i][j] = l[i][j - 1];
}
else{
int k = j - 1;
while(k >= 0 && h[i][k] >= h[i][j]){
k = l[i][k] - 1;
}
k++;
l[i][j] = k;
}
}
}
ll ans = 0;
for(int i = 0; i < n; i++){
dp[i][0] = h[i][0];
for(int j = 1; j < m; j++){
if(g[i][j] == '*') continue;
if(h[i][j] >= h[i][j - 1]){
dp[i][j] = dp[i][j - 1] + h[i][j];
}
else{
int k = j - 1;
while(k >= 0 && h[i][j] <= h[i][k]){
k = l[i][k] - 1;
}
dp[i][j] = (j - k) * h[i][j];
}
}
}
for(int i =0; i < n;i++){
for(int j = 0; j< m; j++){
ans += dp[i][j];
}
}
std::cout << ans << '\n';
}
int main() {
int t = 1;
while(t--) solve();
return 0;
}