#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  string s[4];
  for (int i = 0; i < 4; i++) cin >> s[i];
  bool flag = 1;
  for (int i = 0; i < 3 && flag; i++) {
    for (int j = 0; j < 3 && flag; j++) {
      bool a = s[i][j] == '.' && s[i][j + 1] == '#' && s[i + 1][j] == '#' &&
               s[i + 1][j + 1] == '#';
      bool b = s[i][j] == '#' && s[i][j + 1] == '.' && s[i + 1][j] == '#' &&
               s[i + 1][j + 1] == '#';
      bool c = s[i][j] == '#' && s[i][j + 1] == '#' && s[i + 1][j] == '.' &&
               s[i + 1][j + 1] == '#';
      bool d = s[i][j] == '#' && s[i][j + 1] == '#' && s[i + 1][j] == '#' &&
               s[i + 1][j + 1] == '.';
      bool e = s[i][j] == '#' && s[i][j + 1] == '.' && s[i + 1][j] == '.' &&
               s[i + 1][j + 1] == '.';
      bool f = s[i][j] == '.' && s[i][j + 1] == '#' && s[i + 1][j] == '.' &&
               s[i + 1][j + 1] == '.';
      bool g = s[i][j] == '.' && s[i][j + 1] == '.' && s[i + 1][j] == '#' &&
               s[i + 1][j + 1] == '.';
      bool h = s[i][j] == '.' && s[i][j + 1] == '.' && s[i + 1][j] == '.' &&
               s[i + 1][j + 1] == '#';
      bool x = s[i][j] == '#' && s[i][j + 1] == '#' && s[i + 1][j] == '#' &&
               s[i + 1][j + 1] == '#';
      bool y = s[i][j] == '.' && s[i][j + 1] == '.' && s[i + 1][j] == '.' &&
               s[i + 1][j + 1] == '.';
      flag = !(a + b + c + d + e + f + g + h + x + y);
    }
  }
  cout << (flag ? "NO\n" : "YES\n");
  return 0;
}
