#include <bits/stdc++.h>
using namespace std;
void ONLINE__JUDGE();
pair<long long, long long> swapii(pair<long long, long long> pr) {
  return {pr.second, pr.first};
}
int dx[] = {0, 0, -1, +1, -1, +1, -1, +1};
int dy[] = {-1, +1, 0, 0, -1, +1, +1, -1};
const int mod = 7901;
const int MAX = 1e6 + 9;
long long x, y;
;
char arr[509][509];
bool isOk(long long a, long long b) {
  return a >= 0 && a < x && b >= 0 && b < y;
}
bool solve(long long i, long long j) {
  arr[i][j] = '.';
  long long row = i - 1, col = j;
  while (isOk(row, col) && arr[row][col] == '*') arr[row][col] = '.', row--;
  row = i + 1, col = j;
  while (isOk(row, col) && arr[row][col] == '*') arr[row][col] = '.', row++;
  row = i, col = j - 1;
  while (isOk(row, col) && arr[row][col] == '*') arr[row][col] = '.', col--;
  row = i, col = j + 1;
  while (isOk(row, col) && arr[row][col] == '*') arr[row][col] = '.', col++;
  for (int i = 0; i < x; ++i)
    for (int j = 0; j < y; ++j)
      if (arr[i][j] == '*') return cout << "NO", 0;
  cout << "YES";
  return 1;
}
int main() {
  ios::sync_with_stdio(NULL);
  cin.tie(NULL);
  ONLINE__JUDGE();
  cin >> x >> y;
  for (int i = 0; i < x; ++i)
    for (int j = 0; j < y; ++j) cin >> arr[i][j];
  for (int i = 0; i < x; ++i)
    for (int j = 0; j < y; ++j)
      if (arr[i][j] == '*')
        if (isOk(i - 1, j) && arr[i - 1][j] == '*')
          if (isOk(i + 1, j) && arr[i + 1][j] == '*')
            if (isOk(i, j + 1) && arr[i][j + 1] == '*')
              if (isOk(i, j - 1) && arr[i][j - 1] == '*') {
                solve(i, j);
                return 0;
              }
  cout << "NO";
  return 0;
}
void ONLINE__JUDGE() {}
