#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
const int maxn = 4e5 + 10;
const int maxm = 2e5 + 10;
const double PI = acos(-1.0);
int mp[505][505];
int sumw[505][505], sumh[505][505];
int vis[505][505];
int i, j, h, w;
bool check() {
  for (int k = i; k >= 1; k--) {
    if (mp[k][j])
      vis[k][j] = 1;
    else
      break;
  }
  for (int k = i; k <= h; k++) {
    if (mp[k][j])
      vis[k][j] = 1;
    else
      break;
  }
  for (int k = j; k >= 1; k--) {
    if (mp[i][k])
      vis[i][k] = 1;
    else
      break;
  }
  for (int k = j; k <= w; k++) {
    if (mp[i][k])
      vis[i][k] = 1;
    else
      break;
  }
  for (int k = 1; k <= h; k++) {
    for (int t = 1; t <= w; t++) {
      if (mp[k][t] && !vis[k][t]) return false;
    }
  }
  return true;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cin >> h >> w;
  for (int i = 1; i <= h; i++) {
    for (int j = 1; j <= w; j++) {
      char c;
      cin >> c;
      if (c == '*')
        mp[i][j] = 1;
      else
        mp[i][j] = 0;
    }
  }
  for (int i = 1; i <= h; i++) {
    for (int j = 1; j <= w; j++) {
      sumh[i][j] = sumh[i][j - 1] + mp[i][j];
    }
  }
  for (int i = 1; i <= w; i++) {
    for (int j = 1; j <= h; j++) {
      sumw[i][j] = sumw[i][j - 1] + mp[j][i];
    }
  }
  int flag = 1;
  int flag1 = 0;
  int pos1 = 0, pos2 = 0;
  for (i = 1; i <= h; i++)
    if (sumh[i][w] != 0) break;
  for (j = h; j >= 1; j--)
    if (sumh[j][w] != 0) break;
  for (int k = i; k <= j; k++) {
    if (!sumh[k][w]) flag = 0;
    if (sumh[k][w] == 2) flag = 0;
    if (sumh[k][w] >= 3 && flag1 == 0) {
      flag1 = 1;
      pos1 = k;
    } else if (sumh[k][w] >= 3 && flag1)
      flag = 0;
  }
  if (!flag1) flag = 0;
  if (pos1) {
    if (pos1 == 1 || pos1 == h) flag = 0;
    if (sumh[pos1 - 1][w] == 0 || sumh[pos1 + 1][w] == 0) flag = 0;
  }
  int flag2 = 0;
  for (i = 1; i <= w; i++)
    if (sumw[i][h] != 0) break;
  for (j = w; j >= 1; j--)
    if (sumw[j][h] != 0) break;
  for (int k = i; k <= j; k++) {
    if (!sumw[k][h]) flag = 0;
    if (sumw[k][h] == 2) flag = 0;
    if (sumw[k][h] >= 3 && flag2 == 0) {
      flag2 = 1;
      pos2 = k;
    } else if (sumw[k][h] >= 3 && flag2)
      flag = 0;
  }
  if (!flag2) flag = 0;
  if (pos2) {
    if (pos2 == 1 || pos2 == w) flag = 0;
    if (sumw[pos2 - 1][h] == 0 || sumw[pos2 + 1][h] == 0) flag = 0;
  }
  if (pos1 && pos2) {
    for (i = 1; i <= w; i++) {
      if (i == pos2) continue;
      if (!mp[pos1][i] && sumw[i][pos1]) flag = 0;
    }
    for (i = 1; i <= h; i++) {
      if (i == pos1) continue;
      if (!mp[i][pos2] && sumh[i][pos2]) flag = 0;
    }
  }
  if (!flag) {
    cout << "NO" << endl;
    return 0;
  }
  flag = 0;
  for (i = 2; i <= h - 1; i++) {
    for (j = 2; j <= w - 1; j++) {
      if (mp[i][j] && mp[i - 1][j] && mp[i + 1][j] && mp[i][j - 1] &&
          mp[i][j + 1]) {
        if (check()) flag++;
      }
    }
  }
  if (flag == 1)
    cout << "YES" << endl;
  else
    cout << "NO" << endl;
  return 0;
}
