#include <bits/stdc++.h>
using namespace std;
int n, m;
string s[1005];
set<int> sx, sy;
vector<pair<int, int> > v, st;
unsigned long long ull;
bool fill(int x1, int y1, int x2, int y2) {
  for (int i = x1; i <= x2; i++) {
    if (s[i][y1] != '#' || s[i][y2] != '#') return false;
    st.push_back(pair<int, int>(i, y1));
    st.push_back(pair<int, int>(i, y2));
  }
  for (int j = y1; j <= y2; j++) {
    if (s[x1][j] != '#' || s[x2][j] != '#') return false;
    st.push_back(pair<int, int>(x1, j));
    st.push_back(pair<int, int>(x2, j));
  }
  return true;
}
bool check() {
  sort(st.begin(), st.end());
  st.erase(unique(st.begin(), st.end()), st.end());
  if (st.size() != v.size()) return false;
  for (int i = 0; i < v.size(); i++)
    if (st[i] != v[i]) return false;
  return true;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cin >> n >> m;
  s[0] = s[n + 1] = string(n + 2, '$');
  for (int i = 1; i <= n; i++) {
    cin >> s[i];
    s[i] = "$" + s[i] + "$";
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) {
      if (s[i][j] != '#') continue;
      v.push_back(pair<int, int>(i, j));
      if (s[i][j - 1] == '#' && s[i][j + 1] == '#') sx.insert(i);
      if (s[i - 1][j] == '#' && s[i + 1][j] == '#') sy.insert(j);
    }
  }
  if (v.size() >= 4 * (n + m)) {
    cout << "NO\n";
    return 0;
  }
  if (sx.size() > 4) sx.erase(++ ++sx.begin(), -- --sx.end());
  if (sy.size() > 4) sy.erase(++ ++sy.begin(), -- --sy.end());
  for (int i1 : sx)
    for (int j1 : sy)
      for (int i2 : sx)
        for (int j2 : sy)
          for (int i3 : sx)
            for (int j3 : sy)
              for (int i4 : sx)
                for (int j4 : sy) {
                  if (i2 - i1 < 2 || j2 - j1 < 2 || i4 - i3 < 2 || j4 - j3 < 2)
                    continue;
                  st.clear();
                  if (fill(i1, j1, i2, j2) && fill(i3, j3, i4, j4) && check()) {
                    cout << "YES\n"
                         << i1 << ' ' << j1 << ' ' << i2 << ' ' << j2 << '\n'
                         << i3 << ' ' << j3 << ' ' << i4 << ' ' << j4 << '\n';
                    return 0;
                  }
                }
  cout << "NO\n";
  return 0;
}
