#include <bits/stdc++.h>
using namespace std;
int main() {
  int i, j, a, b;
  string s1, s2, s3, s4;
  map<char, int> m;
  cin >> s1 >> s2 >> s3 >> s4;
  for (i = 0; i < 3; i++) {
    m.insert(make_pair(s1[i], m[s1[i]]++));
    m.insert(make_pair(s1[i + 1], m[s1[i + 1]]++));
    m.insert(make_pair(s2[i], m[s2[i]]++));
    m.insert(make_pair(s2[i + 1], m[s2[i + 1]]++));
    if (m['#'] >= 3 || m['.'] >= 3) {
      cout << "YES" << endl;
      a = 1;
      break;
    } else
      a = 0;
    m.clear();
  }
  if (a == 0) {
    for (i = 0; i < 3; i++) {
      m.insert(make_pair(s2[i], m[s2[i]]++));
      m.insert(make_pair(s2[i + 1], m[s2[i + 1]]++));
      m.insert(make_pair(s3[i], m[s3[i]]++));
      m.insert(make_pair(s3[i + 1], m[s3[i + 1]]++));
      if (m['#'] >= 3 || m['.'] >= 3) {
        cout << "YES" << endl;
        a = 1;
        break;
      } else
        a = 0;
      m.clear();
    }
    if (a == 0) {
      for (i = 0; i < 3; i++) {
        m.insert(make_pair(s3[i], m[s3[i]]++));
        m.insert(make_pair(s3[i + 1], m[s3[i + 1]]++));
        m.insert(make_pair(s4[i], m[s4[i]]++));
        m.insert(make_pair(s4[i + 1], m[s4[i + 1]]++));
        if (m['#'] >= 3 || m['.'] >= 3) {
          cout << "YES" << endl;
          a = 1;
          break;
        } else
          a = 0;
        m.clear();
      }
      if (a == 0) {
        cout << "NO" << endl;
      }
    }
  }
  return 0;
}
