#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e2 + 5;
const int inf = INT_MAX;
const long long INF = LLONG_MAX;
const long long mod = 1e9 + 7;
long long mul(long long x, long long y) { return x * y % mod; }
long long q_mul(long long a, long long b) {
  long long ans = 0;
  while (b) {
    if (b & 1) {
      ans = (ans + a) % mod;
    }
    b >>= 1;
    a = (a + a) % mod;
  }
  return ans;
}
long long q_pow(long long x, long long y) {
  long long res = 1;
  while (y) {
    if (y & 1) res = q_mul(res, x);
    y >>= 1;
    x = q_mul(x, x);
  }
  return res;
}
long long inv(long long x) { return q_pow(x, mod - 2); }
int Read() {
  int x = 0, F = 1;
  char C = getchar();
  while (C < '0' || C > '9') {
    if (C == '-') F = -F;
    C = getchar();
  }
  while (C >= '0' && C <= '9') {
    x = x * 10 - '0' + C, C = getchar();
  }
  return x * F;
}
char a[maxn][maxn];
bool check(int x, int y) { return a[x][y] == '#'; }
int main() {
  for (int i = 0; i < 4; i++) scanf("%s", a[i]);
  int flag = 0;
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      if ((check(i, j) + check(i + 1, j) + check(i, j + 1) +
           check(i + 1, j + 1)) != 2)
        flag = 1;
    }
  }
  if (flag)
    cout << "YES" << endl;
  else
    cout << "NO" << endl;
}
