#include <bits/stdc++.h>
using namespace std;
int main() {
  int row, col;
  cin >> row >> col;
  vector<string> str(row);
  for (int i = 0; i < row; i++) {
    cin >> str[i];
  }
  int count = 0;
  for (int i = 0; i < row; i++) {
    for (int j = 0; j < col; j++) {
      if (str[i][j] == '*') count++;
    }
  }
  vector<vector<int>> up(row, vector<int>(col, 0));
  for (int i = 0; i < row; i++) {
    for (int j = 0; j < col; j++) {
      if (i == 0) {
        if (str[i][j] == '*') up[i][j] = 1;
      } else {
        if (str[i][j] == '*') up[i][j] = 1 + up[i - 1][j];
      }
    }
  }
  vector<vector<int>> down(row, vector<int>(col, 0));
  for (int i = row - 1; i >= 0; i--) {
    for (int j = 0; j < col; j++) {
      if (i == row - 1) {
        if (str[i][j] == '*') down[i][j] = 1;
      } else {
        if (str[i][j] == '*') down[i][j] = 1 + down[i + 1][j];
      }
    }
  }
  vector<vector<int>> left(row, vector<int>(col, 0));
  for (int j = 0; j < col; j++) {
    for (int i = 0; i < row; i++) {
      if (j == 0) {
        if (str[i][j] == '*') left[i][j] = 1;
      } else {
        if (str[i][j] == '*') left[i][j] = 1 + left[i][j - 1];
      }
    }
  }
  vector<vector<int>> right(row, vector<int>(col, 0));
  for (int j = col - 1; j >= 0; j--) {
    for (int i = 0; i < row; i++) {
      if (j == col - 1) {
        if (str[i][j] == '*') right[i][j] = 1;
      } else {
        if (str[i][j] == '*') right[i][j] = 1 + right[i][j + 1];
      }
    }
  }
  for (int i = 1; i < row - 1; i++) {
    for (int j = 1; j < col - 1; j++) {
      if (str[i][j] == '*') {
        int val = up[i - 1][j] + down[i + 1][j] + left[i][j - 1] +
                  right[i][j + 1] + 1;
        if (val == count && up[i - 1][j] >= 1 && down[i + 1][j] >= 1 &&
            left[i][j - 1] >= 1 && right[i][j + 1] >= 1) {
          cout << "YES\n";
          return 0;
        }
      }
    }
  }
  cout << "NO\n";
  return 0;
}
