#include <bits/stdc++.h>
using namespace std;
const int MAXN = 505;
int main() {
  std::ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int h, w;
  string map[MAXN];
  cin >> h >> w;
  for (int i = 0; i < h; i++) cin >> map[i];
  int center_x = -1, center_y = -1;
  for (int i = 1; i + 1 < h && center_x == -1; i++)
    for (int j = 1; j + 1 < w && center_x == -1; j++)
      if (map[i][j] == '*' && map[i - 1][j] == '*' && map[i + 1][j] == '*' &&
          map[i][j - 1] == '*' && map[i][j + 1] == '*') {
        center_x = i;
        center_y = j;
        break;
      }
  if (center_x != -1) {
    map[center_x][center_y] = '.';
    for (int i = center_x - 1; i >= 0 && map[i][center_y] == '*'; i--)
      map[i][center_y] = '.';
    for (int i = center_x + 1; i < h && map[i][center_y] == '*'; i++)
      map[i][center_y] = '.';
    for (int j = center_y - 1; j >= 0 && map[center_x][j] == '*'; j--)
      map[center_x][j] = '.';
    for (int j = center_y + 1; j < w && map[center_x][j] == '*'; j++)
      map[center_x][j] = '.';
  } else {
    cout << "NO" << endl;
    return 0;
  }
  bool found = 0;
  for (int i = 0; i < h; i++)
    for (int j = 0; j < w; j++)
      if (map[i][j] == '*') found = 1;
  cout << (found ? "NO" : "YES") << endl;
  return 0;
}
