#include <bits/stdc++.h>
using namespace std;
char a[5][5];
int i, j;
int check(int x, int y) {
  if ((x > 3) || (y > 3) || (!x) || (!y)) return 0;
  if ((a[x][y] == a[x][y + 1]) && (a[x][y] == a[x + 1][y + 1]) &&
      (a[x][y] == a[x + 1][y])) {
    printf("YES\n");
    return 1;
  }
  return 0;
}
int main() {
  scanf("%s", a[1] + 1);
  scanf("%s", a[2] + 1);
  scanf("%s", a[3] + 1);
  scanf("%s", a[4] + 1);
  for (i = 1; i <= 4; i++) {
    for (j = 1; j <= 4; j++) {
      if (i > 1) {
        if (check(i - 1, j)) return 0;
        if (j > 1)
          if (check(i - 1, j - 1)) return 0;
      }
      if (j > 1)
        if (check(i, j - 1)) return 0;
      if (check(i, j)) return 0;
      if (a[i][j] == '#')
        a[i][j] = '.';
      else
        a[i][j] = '#';
      if (i > 1) {
        if (check(i - 1, j)) return 0;
        if (j > 1)
          if (check(i - 1, j - 1)) return 0;
      }
      if (j > 1)
        if (check(i, j - 1)) return 0;
      if (check(i, j)) return 0;
      if (a[i][j] == '#')
        a[i][j] = '.';
      else
        a[i][j] = '#';
    }
  }
  printf("NO\n");
  return 0;
}
