#include <bits/stdc++.h>
using namespace std;
const int MAX_H = 500;
const int MAX_W = 500;
const int FN = 8;
const int P = 4073;
const int Q = 4177;
const int MOD = 1000000009;
char s[MAX_W + 4];
int fs[MAX_H][MAX_W];
int pes[MAX_H + 1], invpes[MAX_H + 1];
int qes[MAX_W + 1], invqes[MAX_W + 1];
int fchs[FN + 1][16];
int rhs[MAX_H + 1][MAX_W + 1];
inline int powmod(int a, int b) {
  int pm = 1;
  while (b) {
    if (b & 1) pm = (long long)pm * a % MOD;
    a = (long long)a * a % MOD;
    b >>= 1;
  }
  return pm;
}
inline void prep_rhash(int n, int p, int pes[], int invpes[]) {
  pes[0] = invpes[0] = 1;
  pes[1] = p;
  int invp = invpes[1] = powmod(p, MOD - 2);
  for (int i = 1; i < n; i++) {
    pes[i + 1] = (long long)pes[i] * p % MOD;
    invpes[i + 1] = (long long)invpes[i] * invp % MOD;
  }
}
inline int rhash(int rhs[MAX_H + 1][MAX_W + 1], int x0, int y0, int x1,
                 int y1) {
  return (long long)((((rhs[y1][x1] + (MOD - rhs[y0][x1])) % MOD +
                       (MOD - rhs[y1][x0])) %
                          MOD +
                      rhs[y0][x0]) %
                     MOD) *
         invpes[y0] % MOD * invqes[x0] % MOD;
}
int main() {
  int h, w;
  scanf("%d%d", &h, &w);
  for (int y = 0; y < h; y++) {
    scanf("%s", s);
    for (int x = 0; x < w; x++) fs[y][x] = (s[x] == '*') ? 1 : 0;
  }
  prep_rhash(h, P, pes, invpes);
  prep_rhash(w, Q, qes, invqes);
  fchs[0][15] = 1;
  for (int i = 0, bi = 1; i < FN; i++, bi <<= 1)
    for (int bits = 0; bits < 16; bits++) {
      int fi0 = fchs[i][bits], fi1 = fchs[i][15];
      int pei = pes[bi], qei = qes[bi];
      int f0 = (bits & 1) ? fi1 : fi0;
      int f1 = (long long)((bits & 2) ? fi1 : fi0) * qei % MOD;
      int f2 = (long long)((bits & 4) ? fi1 : fi0) * pei % MOD;
      int f3 = (long long)((bits & 8) ? fi1 : fi0) * pei % MOD * qei % MOD;
      fchs[i + 1][bits] = (((f0 + f1) % MOD + f2) % MOD + f3) % MOD;
    }
  for (int y = 0; y < h; y++)
    for (int x = 0; x < w; x++)
      rhs[y + 1][x + 1] = ((((long long)fs[y][x] * pes[y] % MOD * qes[x] % MOD +
                             rhs[y][x + 1]) %
                                MOD +
                            rhs[y + 1][x]) %
                               MOD +
                           (MOD - rhs[y][x])) %
                          MOD;
  int cnt = 0;
  for (int y = 0; y < h; y++)
    for (int x = 0; x < w; x++)
      for (int i = 2, bi = 4; y + bi <= h && x + bi <= w; i++, bi <<= 1) {
        int rh = rhash(rhs, x, y, x + bi, y + bi);
        for (int bits = 0; bits < 16; bits++)
          if (rh == fchs[i][bits]) {
            cnt++;
          }
      }
  printf("%d\n", cnt);
  return 0;
}
