#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  ;
  bool flag = false;
  char grid[4][4];
  for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 4; j++) cin >> grid[i][j];
  }
  for (int i = 0; i < 3; i++) {
    if (flag) break;
    for (int j = 0; j < 3; j++) {
      if (grid[i][j] == '#' && grid[i][j + 1] == '#' &&
          grid[i + 1][j + 1] == '#')
        flag = true;
      else if (grid[i][j] == '.' && grid[i][j + 1] == '.' &&
               grid[i + 1][j + 1] == '.')
        flag = true;
    }
  }
  for (int i = 3; i > 0; i--) {
    if (flag) break;
    for (int j = 3; j > 0; j--) {
      if (grid[i][j] == '#' && grid[i][j - 1] == '#' &&
          grid[i - 1][j - 1] == '#')
        flag = true;
      else if (grid[i][j] == '.' && grid[i][j - 1] == '.' &&
               grid[i - 1][j - 1] == '.')
        flag = true;
    }
  }
  for (int i = 3; i > 0; i--) {
    if (flag) break;
    for (int j = 0; j < 3; j++) {
      if (grid[i][j] == '#' && grid[i - 1][j] == '#' &&
          grid[i - 1][j + 1] == '#')
        flag = true;
      else if (grid[i][j] == '.' && grid[i - 1][j] == '.' &&
               grid[i - 1][j + 1] == '.')
        flag = true;
    }
  }
  for (int i = 3; i > 0; i--) {
    if (flag) break;
    for (int j = 0; j < 3; j++) {
      if (grid[i][j] == '#' && grid[i][j + 1] == '#' &&
          grid[i - 1][j + 1] == '#')
        flag = true;
      else if (grid[i][j] == '.' && grid[i][j + 1] == '.' &&
               grid[i - 1][j + 1] == '.')
        flag = true;
    }
  }
  if (flag)
    cout << "YES";
  else
    cout << "NO";
}
