#include <bits/stdc++.h>
using namespace std;
const int N = 505;
int c[N][N];
char a[N][N];
int pat[10][N][N];
int get_pattern_id(char x, char y, char z, char w) {
  return (x == '*') * 8 + (y == '*') * 4 + (z == '*') * 2 + (w == '*');
}
int check_pattern(int x, int y, int z, int w) {
  if (x < 0 || y < 0 || z < 0 || w < 0) return -1;
  int pid = (x == 15) * 8 + (y == 15) * 4 + (z == 15) * 2 + (w == 15);
  if (x != 15 && x != pid) return -1;
  if (y != 15 && y != pid) return -1;
  if (z != 15 && z != pid) return -1;
  if (w != 15 && w != pid) return -1;
  return pid;
}
int main(void) {
  int n, m;
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; i++) scanf("%s", a[i] + 1);
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++)
      c[i][j] = c[i - 1][j] + c[i][j - 1] - c[i - 1][j - 1] + (a[i][j] == '*');
  for (int i = 1; i < n; i++)
    for (int j = 1; j < m; j++)
      pat[0][i][j] =
          get_pattern_id(a[i][j], a[i][j + 1], a[i + 1][j], a[i + 1][j + 1]);
  int u = 0, ans = 0;
  for (int len = 4; len <= min(n, m); len *= 2, u++) {
    for (int i = 1; i <= n - len + 1; i++)
      for (int j = 1; j <= m - len + 1; j++) {
        pat[u + 1][i][j] = check_pattern(pat[u][i][j], pat[u][i][j + len / 2],
                                         pat[u][i + len / 2][j],
                                         pat[u][i + len / 2][j + len / 2]);
        ans += (pat[u + 1][i][j] != -1);
      }
  }
  printf("%d\n", ans);
  return 0;
}
