#include <bits/stdc++.h>
using namespace std;
const int maxn = 1005;
char a[maxn][maxn], b[maxn][maxn];
int tx[maxn], ty[maxn];
int n, m, lx, ly;
bool check(int x1, int y1, int x2, int y2) {
  int i;
  for (i = x1; i <= x2; ++i) {
    if (a[i][y1] != '#' || a[i][y2] != '#') return false;
    b[i][y1] = b[i][y2] = '#';
  }
  for (i = y1; i <= y2; ++i) {
    if (a[x1][i] != '#' || a[x2][i] != '#') return false;
    b[x1][i] = b[x2][i] = '#';
  }
  return true;
}
int main() {
  int i, j, x1, x2, x3, x4, y1, y2, y3, y4;
  bool flag;
  scanf("%d%d", &n, &m);
  for (i = 1; i <= n; ++i) scanf("%s", a[i] + 1);
  for (i = 1; i <= n; ++i)
    for (j = 1; j <= m - 2; ++j)
      if (a[i][j] == '#' && a[i][j + 1] == '#' && a[i][j + 2] == '#') {
        tx[++lx] = i;
        break;
      }
  for (j = 1; j <= m; ++j)
    for (i = 1; i <= n - 2; ++i)
      if (a[i][j] == '#' && a[i + 1][j] == '#' && a[i + 2][j] == '#') {
        ty[++ly] = j;
        break;
      }
  if (lx > 4) {
    tx[3] = tx[lx - 1];
    tx[4] = tx[lx];
    lx = 4;
  }
  if (ly > 4) {
    ty[3] = ty[ly - 1];
    ty[4] = ty[ly];
    ly = 4;
  }
  for (x1 = 1; x1 < lx; ++x1)
    for (x2 = x1 + 1; x2 <= lx; ++x2)
      for (x3 = x1; x3 < lx; ++x3)
        for (x4 = x3 + 1; x4 <= lx; ++x4)
          for (y1 = 1; y1 < ly; ++y1)
            for (y2 = y1 + 1; y2 <= ly; ++y2)
              for (y3 = 1; y3 < ly; ++y3)
                for (y4 = y3 + 1; y4 <= ly; ++y4)
                  if (tx[x1] + 1 < tx[x2] && tx[x3] + 1 < tx[x4] &&
                      ty[y1] + 1 < ty[y2] && ty[y3] + 1 < ty[y4]) {
                    memset(b, '.', sizeof b);
                    if (check(tx[x1], ty[y1], tx[x2], ty[y2]) &&
                        check(tx[x3], ty[y3], tx[x4], ty[y4])) {
                      flag = true;
                      for (i = 1; i <= n; ++i)
                        for (j = 1; j <= m; ++j)
                          if (a[i][j] != b[i][j]) {
                            flag = false;
                            break;
                          }
                      if (flag) {
                        puts("YES");
                        printf("%d %d %d %d\n", tx[x1], ty[y1], tx[x2], ty[y2]);
                        printf("%d %d %d %d\n", tx[x3], ty[y3], tx[x4], ty[y4]);
                        return 0;
                      }
                    }
                  }
  puts("NO");
  return 0;
}
