#include <bits/stdc++.h>
using namespace std;
int a[4][2] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
char v[1000][1000];
void clearr(int x, int y) {
  v[x][y] = '.';
  for (int i = 0; i < 4; i++) {
    int x1 = x, y1 = y;
    while (v[x1 + a[i][0]][y1 + a[i][1]] == '*') {
      v[x1 + a[i][0]][y1 + a[i][1]] = '.';
      x1 += a[i][0], y1 += a[i][1];
    }
  }
}
int main() {
  string s;
  char ss[10000];
  int n, m, b[1000], flag1 = 0;
  while (cin >> m >> n) {
    memset(v, 0, sizeof(v));
    for (int i = 1; i <= m; i++) {
      for (int j = 1; j <= n; j++) {
        cin >> v[i][j];
      }
    }
    flag1 = 1;
    for (int i = 1; i <= m; i++) {
      for (int j = 1; j <= n; j++) {
        if (v[i][j] == '*' && v[i + 1][j] == '*' && v[i - 1][j] == '*' &&
            v[i][j + 1] == '*' && v[i][j - 1] == '*' && i + 1 <= m &&
            i - 1 >= 1 && j + 1 <= n && j - 1 >= 1) {
          flag1 = 0;
          clearr(i, j);
          goto l;
        }
      }
    }
  l:
    int flag = 0;
    for (int i = 1; i <= m; i++) {
      for (int j = 1; j <= n; j++) {
        if (v[i][j] == '*') {
          flag = 1;
        }
      }
    }
    if (flag1 == 1 || flag)
      cout << "NO" << endl;
    else
      cout << "YES" << endl;
  }
}
