#include <bits/stdc++.h>
using namespace std;
const int N = 1010;
char sz[1010][1010];
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
int num = 0;
int n, m;
bool fun(int x, int y) {
  int res = 1;
  int u = x - 1;
  while (u >= 0 && sz[u][y] == '*') res++, u--;
  u = x + 1;
  while (u < n && sz[u][y] == '*') res++, u++;
  u = y - 1;
  while (u >= 0 && sz[x][u] == '*') res++, u--;
  u = y + 1;
  while (u < m && sz[x][u] == '*') res++, u++;
  if (res == num) return true;
  return false;
}
int main(void) {
  cin >> n >> m;
  for (int i = 0; i < n; i++) scanf("%s", sz[i]);
  num = 0;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      if (sz[i][j] == '*') num++;
    }
  }
  int flag = 1;
  for (int i = 1; i < n - 1; i++) {
    for (int j = 1; j < m - 1; j++) {
      if (sz[i][j] != '*' || sz[i - 1][j] != '*' || sz[i + 1][j] != '*' ||
          sz[i][j - 1] != '*' || sz[i][j + 1] != '*')
        continue;
      if (fun(i, j)) {
        flag = 0;
        break;
      }
    }
    if (!flag) break;
  }
  if (!flag)
    cout << "YES";
  else
    cout << "NO";
  return 0;
}
