#include <bits/stdc++.h>
using namespace std;
char a[6][6];
char tl[2] = {'x', 'o'};
int dx[8] = {1, 1, 0, -1, -1, -1, 0, 1};
int dy[8] = {0, 1, 1, 1, 0, -1, -1, -1};
bool judge(int x, int y, int nu) {
  for (int i = 0; i < 8; i++) {
    int xx = x + dx[i];
    int yy = y + dy[i];
    if (a[xx][yy] == tl[nu]) {
      xx = x - dx[i];
      yy = y - dy[i];
      if (a[xx][yy] == '.') return true;
    }
    if (a[xx][yy] == '.') {
      xx = xx + dx[i];
      yy = yy + dy[i];
      if (a[xx][yy] == tl[nu]) return true;
    }
  }
  return false;
}
void solve() {
  int num1 = 0, num2 = 0;
  for (int i = 1; i <= 4; i++)
    for (int j = 1; j <= 4; j++) {
      cin >> a[i][j];
      if (a[i][j] == 'x') num1++;
      if (a[i][j] == 'o') num2++;
    }
  for (int i = 0; i < 6; i++) a[i][0] = a[0][i] = a[6][i] = a[i][6] = '*';
  int be = 0;
  if (num2 < num1) be = 1;
  for (int i = 1; i <= 4; i++)
    for (int j = 1; j <= 4; j++) {
      if (a[i][j] == tl[be] && judge(i, j, be)) {
        cout << "YES" << endl;
        return;
      }
    }
  cout << "NO" << endl;
  return;
}
int main() {
  solve();
  return 0;
}
