#include <bits/stdc++.h>
long long MOD = 998244353;
using namespace std;
struct custom_hash {
  static uint64_t splitmix64(uint64_t x) {
    x += 0x9e3779b97f4a7c15;
    x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;
    x = (x ^ (x >> 27)) * 0x94d049bb133111eb;
    return x ^ (x >> 31);
  }
  size_t operator()(uint64_t x) const {
    static const uint64_t FIXED_RANDOM =
        chrono::steady_clock::now().time_since_epoch().count();
    return splitmix64(x + FIXED_RANDOM);
  }
};
struct pair_hash {
  template <class T1, class T2>
  size_t operator()(const pair<T1, T2> &p) const {
    return hash<T1>()(p.first) ^ hash<T2>()(p.second);
  }
};
int main() {
  int h, w;
  cin >> h >> w;
  int s[2000][2000] = {};
  for (int i = 0; i < h; i++)
    for (int j = 0; j < w; j++) {
      char c;
      scanf("%c", &c);
      if (c == '.')
        s[i][j] = 0;
      else
        s[i][j] = 1;
    }
  int ans = 0;
  int t[2000][2000] = {};
  for (int i = 0; i < h; i++)
    for (int j = 0; j < w; j++) t[i + j][j] += s[i][j];
  for (int i = 0; i < h + w; i++)
    for (int j = 0; j < h + w; j++) t[i][j + 1] += t[i][j];
  for (int i = 0; i < h + w - 2; i++) {
    if (i < h) {
      for (int j = 0; j < min(w, i + 1); j++) {
        for (int k = j + 1; k <= min(w - 1, i); ++k) {
          if (s[i - j][j] && s[i - k][k]) {
            int d = k - j;
            ans += t[i + (k - j) * 2][j + 2 * d] - t[i + (k - j) * 2][k - 1];
            if (i - 2 * d >= 0) {
              ans += t[i - (k - j) * 2][j];
              if (k - 2 * d >= 0) ans -= t[i - (k - j) * 2][k - 2 * d - 1];
            }
            if (i - j - 2 * d >= 0) ans -= s[i - j - 2 * d][j];
            if (k - 2 * d >= 0) ans -= s[i - k][k - 2 * d];
            ans -= s[i - j][j + 2 * d];
            ans -= s[i - k + 2 * d][k];
          }
        }
      }
    } else {
      for (int j = 0; j < min(w + h - i - 1, h); j++) {
        for (int k = j + 1; k <= min(w + h - i - 2, h - 1); ++k) {
          if (s[h - 1 - j][i + 1 - h + j] && s[h - 1 - k][i + 1 - h + k]) {
            int d = k - j;
            ans += t[i + (k - j) * 2][i + 1 - h + j + 2 * d] -
                   t[i + (k - j) * 2][i + 1 - h + k - 1];
            if (i - 2 * d >= 0) {
              ans += t[i - d * 2][i + 1 - h + j];
              if (i + 1 - h + k - 2 * d >= 0)
                ans -= t[i - d * 2][i + 1 - h + k - 2 * d - 1];
            }
            if (h - 1 - j - 2 * d >= 0)
              ans -= s[h - 1 - j - 2 * d][i + 1 - h + j];
            if (i + 1 - h + k - 2 * d >= 0)
              ans -= s[h - 1 - k][i + 1 - h + k - 2 * d];
            ans -= s[h - 1 - j][i + 1 - h + j + 2 * d];
            ans -= s[h - 1 - k + 2 * d][i + 1 - h + k];
          }
        }
      }
    }
  }
  for (int i = 0; i < h; i++)
    for (int j = 0; j < w / 2; j++) swap(s[i][j], s[i][w - 1 - j]);
  for (int i = 0; i < 700; i++)
    for (int j = 0; j < 700; j++) t[i][j] = 0;
  for (int i = 0; i < h; i++)
    for (int j = 0; j < w; j++) t[i + j][j] += s[i][j];
  for (int i = 0; i < h + w; i++)
    for (int j = 0; j < h + w; j++) t[i][j + 1] += t[i][j];
  for (int i = 0; i < h + w - 2; i++) {
    if (i < h) {
      for (int j = 0; j < min(w, i + 1); j++) {
        for (int k = j + 1; k <= min(w - 1, i); ++k) {
          if (s[i - j][j] && s[i - k][k]) {
            int d = k - j;
            ans += t[i + (k - j) * 2][j + 2 * d] - t[i + (k - j) * 2][k - 1];
            if (i - 2 * d >= 0) {
              ans += t[i - (k - j) * 2][j];
              if (k - 2 * d >= 0) ans -= t[i - (k - j) * 2][k - 2 * d - 1];
            }
          }
        }
      }
    } else {
      for (int j = 0; j < min(w + h - i - 1, h); j++) {
        for (int k = j + 1; k <= min(w + h - i - 2, h - 1); ++k) {
          if (s[h - 1 - j][i + 1 - h + j] && s[h - 1 - k][i + 1 - h + k]) {
            int d = k - j;
            ans += t[i + (k - j) * 2][i + 1 - h + j + 2 * d] -
                   t[i + (k - j) * 2][i + 1 - h + k - 1];
            if (i - 2 * d >= 0) {
              ans += t[i - d * 2][i + 1 - h + j];
              if (i + 1 - h + k - 2 * d >= 0)
                ans -= t[i - d * 2][i + 1 - h + k - 2 * d - 1];
            }
          }
        }
      }
    }
  }
  cout << ans;
}
