In the city of Ultima Thule job applicants are often offered an IQ test. 

The test is as follows: the person gets a piece of squared paper with a 4 × 4 square painted on it. Some of the square's cells are painted black and others are painted white. Your task is to repaint at most one cell the other color so that the picture has a 2 × 2 square, completely consisting of cells of the same color. If the initial picture already has such a square, the person should just say so and the test will be completed. 

Your task is to write a program that determines whether it is possible to pass the test. You cannot pass the test if either repainting any cell or no action doesn't result in a 2 × 2 square, consisting of cells of the same color.
Four lines contain four characters each: the *j*-th character of the *i*-th line equals "." if the cell in the *i*-th row and the *j*-th column of the square is painted white, and "#", if the cell is black.
import sys
import os
from collections import Counter, defaultdict, deque
from heapq import heapify, heappush, heappop
from functools import lru_cache
from math import floor, ceil, sqrt, gcd
from string import ascii_lowercase
from bisect import bisect_left, bisect, bisect_right


def __perform_setup__():
    INPUT_FILE_PATH = "./code/input.txt"
    OUTPUT_FILE_PATH = "./code/output.txt"

    sys.stdin = open(INPUT_FILE_PATH, 'r')
    sys.stdout = open(OUTPUT_FILE_PATH, 'w')


if "MY_COMPETITIVE_PROGRAMMING_VARIABLE" in os.environ:
    __perform_setup__()


def read():
    return input().strip()


def read_int():
    return int(read())


def read_str_list():
    return read().split()


def read_numeric_list():
    return list(map(int, read_str_list()))


def solve(R, C, grid):
    for r in range(R-2+1):
        for c in range(C-2+1):
            whites = 0

            for dR in range(2):
                for dC in range(2):
                    nR, nC = dR+r, dC+c

                    if grid[nR][nC] != "#":
                        whites += 1

            if whites <= 1:
                return True

    return False


grid = []
R, C = 4, 4

for _ in range(R):
    grid.append(read())

print("YES" if solve(R, C, grid) else "NO")
