#include <bits/stdc++.h>
using namespace std;
int main() {
  char site[4][4];
  for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 4; j++) {
      cin >> site[i][j];
    }
  }
  for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 4; j++) {
      if (site[i][j] == 'x') {
        if (j - 2 >= 0) {
          if (site[i][j - 2] == '.' && site[i][j - 1] == 'x') {
            cout << "YES" << endl;
            return 0;
          }
          if (site[i][j - 2] == 'x' && site[i][j - 1] == '.') {
            cout << "YES" << endl;
            return 0;
          }
        }
        if (j + 2 < 4) {
          if (site[i][j + 2] == '.' && site[i][j + 1] == 'x') {
            cout << "YES" << endl;
            return 0;
          }
          if (site[i][j + 2] == 'x' && site[i][j + 1] == '.') {
            cout << "YES" << endl;
            return 0;
          }
        }
        if (i - 2 >= 0) {
          if (site[i - 2][j] == '.' && site[i - 1][j] == 'x') {
            cout << "YES" << endl;
            return 0;
          }
          if (site[i - 2][j] == 'x' && site[i - 1][j] == '.') {
            cout << "YES" << endl;
            return 0;
          }
        }
        if (i + 2 < 4) {
          if (site[i + 2][j] == '.' && site[i + 1][j] == 'x') {
            cout << "YES" << endl;
            return 0;
          }
          if (site[i + 2][j] == 'x' && site[i + 1][j] == '.') {
            cout << "YES" << endl;
            return 0;
          }
        }
        if (i < 2) {
          if (j < 2) {
            if (site[i + 1][j + 1] == '.' && site[i + 2][j + 2] == 'x') {
              cout << "YES" << endl;
              return 0;
            }
            if (site[i + 1][j + 1] == 'x' && site[i + 2][j + 2] == '.') {
              cout << "YES" << endl;
              return 0;
            }
          } else {
            if (site[i + 1][j - 1] == '.' && site[i + 2][j - 2] == 'x') {
              cout << "YES" << endl;
              return 0;
            }
            if (site[i + 1][j - 1] == 'x' && site[i + 2][j - 2] == '.') {
              cout << "YES" << endl;
              return 0;
            }
          }
        } else {
          if (j < 2) {
            if (site[i - 1][j + 1] == '.' && site[i - 2][j + 2] == 'x') {
              cout << "YES" << endl;
              return 0;
            }
            if (site[i - 1][j + 1] == 'x' && site[i - 2][j + 2] == '.') {
              cout << "YES" << endl;
              return 0;
            }
          } else {
            if (site[i - 1][j - 1] == '.' && site[i - 2][j - 2] == 'x') {
              cout << "YES" << endl;
              return 0;
            }
            if (site[i - 1][j - 1] == 'x' && site[i - 2][j - 2] == '.') {
              cout << "YES" << endl;
              return 0;
            }
          }
        }
      }
    }
  }
  cout << "NO" << endl;
  return 0;
}
