#include <bits/stdc++.h>
#pragma warning(disable : 4996)
using namespace std;
long h, w;
char str[305][305];
long s[305][305];
long long ss[605][305];
int main(int argc, char* argv[]) {
  scanf("%ld%ld", &h, &w);
  long i, j, k;
  for (i = 0; i < h; i++) {
    scanf("%s", str[i]);
  }
  long long ans = 0;
  long m;
  for (m = 0; m < 4; m++) {
    for (i = 0; i < h + w; i++) {
      for (j = 0; j < w; j++) {
        ss[i][j] = 0;
      }
    }
    for (i = 0; i < h; i++) {
      for (j = 0; j < w; j++) {
        long imod = (m & 2 ? h - 1 - i : i);
        long jmod = (m & 1 ? w - 1 - j : j);
        if (str[i][j] == '#')
          s[imod][jmod] = 1;
        else
          s[imod][jmod] = 0;
      }
    }
    for (j = 0; j < w; j++) {
      for (i = 0; i < h; i++) {
        long tmp = (j - 1 >= 0 ? ss[i + j][j - 1] : 0);
        ss[i + j][j] = tmp + s[i][j];
      }
    }
    for (i = 0; i < h; i++) {
      for (j = 0; j < w; j++) {
        if (s[i][j]) {
          for (k = 1; k <= ((i) > (w - j - 1) ? (w - j - 1) : (i)); k++) {
            if (s[i - k][j + k]) {
              if (i + k < h && s[i + k][j + k]) ans++;
              if (j + k + k < w && s[i][j + k + k]) ans++;
              long tmp = j + k + k - 1;
              if (tmp > w - 1) tmp = w - 1;
              ans += 2 * (ss[i + j + k + k][tmp] - ss[i + j + k + k][j + k]);
            }
          }
        }
      }
    }
  }
  printf("%lld\n", ans / 2);
  return 0;
}
