#include <bits/stdc++.h>
using namespace std;
const int mn = 1005, inf = 1 << 29;
int n, m, R, C, nc, tot;
int mr[mn], mc[mn], r[mn], c[mn], v[mn][mn];
char s[mn][mn];
void upd(int *a, int *r, int n, int &R) {
  int i;
  R = 0;
  for (i = 1; i <= n; ++i)
    if (r[i] > 2) a[++R] = i;
  if (R >= 8) {
    for (i = 0; i <= 3; ++i) a[8 - i] = a[R - i];
    R = 8;
  }
}
void init() {
  scanf("%d%d", &n, &m);
  int i, j, cnt;
  for (i = 1; i <= n; ++i) scanf("%s", s[i] + 1);
  for (i = 1; i <= n; ++i) {
    cnt = 0;
    for (j = 1; j <= m; ++j)
      if (s[i][j] == '#')
        mr[i] = max(mr[i], ++cnt), ++tot;
      else
        cnt = 0;
  }
  for (j = 1; j <= m; ++j) {
    cnt = 0;
    for (i = 1; i <= n; ++i)
      if (s[i][j] == '#')
        mc[j] = max(mc[j], ++cnt);
      else
        cnt = 0;
  }
  upd(r, mr, n, R), upd(c, mc, m, C);
}
int cover(int x0, int x1, int y0, int y1) {
  int i, res = 0;
  for (i = x0; i <= x1; ++i) {
    if (s[i][y0] == '.' || s[i][y1] == '.') return inf;
    if (v[i][y0] != nc) ++res, v[i][y0] = nc;
    if (v[i][y1] != nc) ++res, v[i][y1] = nc;
  }
  for (i = y0; i <= y1; ++i) {
    if (s[x0][i] == '.' || s[x1][i] == '.') return inf;
    if (v[x0][i] != nc) ++res, v[x0][i] = nc;
    if (v[x1][i] != nc) ++res, v[x1][i] = nc;
  }
  return res;
}
bool check(int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3) {
  if (x1 - x0 < 2 || x3 - x2 < 2 || y1 - y0 < 2 || y3 - y2 < 2) return 0;
  ++nc;
  if (cover(x0, x1, y0, y1) + cover(x2, x3, y2, y3) == tot) return 1;
  return 0;
}
int main() {
  init();
  int x0 = 1, x1, x2, x3, y0, y1, y2, y3;
  for (x1 = 2; x1 <= R; ++x1)
    for (y0 = 1; y0 <= C; ++y0)
      for (y1 = y0 + 1; y1 <= C; ++y1)
        for (x2 = 1; x2 <= R; ++x2)
          for (x3 = x2 + 1; x3 <= R; ++x3)
            for (y2 = 1; y2 <= C; ++y2)
              for (y3 = y2 + 1; y3 <= C; ++y3)
                if (check(r[x0], c[y0], r[x1], c[y1], r[x2], c[y2], r[x3],
                          c[y3])) {
                  printf("YES\n");
                  printf("%d %d %d %d\n", r[x0], c[y0], r[x1], c[y1]);
                  printf("%d %d %d %d\n", r[x2], c[y2], r[x3], c[y3]);
                  return 0;
                }
  puts("NO");
  return 0;
}
