#include <bits/stdc++.h>
struct RC {
  int r, c;
  RC(int _ = 0, int __ = 0) { r = _, c = __; }
};
char board[1010][1010];
RC rc[1000010];
bool vis[1000010];
int main() {
  int m, n;
  scanf("%d%d", &m, &n);
  for (int i = 0; i < m; i++) scanf("%s", board[i]);
  int tot = 0;
  for (int i = 0; i < m; i++)
    for (int j = 0; j < n; j++)
      if (board[i][j] == '*') rc[tot++] = RC(i, j);
  int mr = rc[0].r;
  for (int i = 0; i < tot; i++)
    if (rc[i].r == mr) vis[i] = true;
  int idx = 0;
  while (vis[idx]) idx++;
  int mc = rc[idx].c;
  bool ok = true;
  for (int i = 0; i < tot; i++)
    if (!vis[i] && rc[i].c != mc) ok = false;
  if (ok) {
    puts("YES");
    printf("%d %d", mr + 1, mc + 1);
  } else {
    memset(vis, false, sizeof(vis));
    mc = rc[0].c;
    for (int i = 0; i < tot; i++)
      if (rc[i].c == mc) vis[i] = true;
    idx = 0;
    while (vis[idx]) idx++;
    mr = rc[idx].r;
    ok = true;
    for (int i = 0; i < tot; i++)
      if (!vis[i] && rc[i].r != mr) ok = false;
    if (ok) {
      puts("YES");
      printf("%d %d", mr + 1, mc + 1);
    } else
      puts("NO");
  }
  return 0;
}
