#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:16777216")
using namespace std;
pair<int, int> p[10][10];
int nom[4];
bool cmp(int a, int b) {
  if (p[a][0] != p[b][0])
    return (p[a][0] < p[b][0]);
  else
    return (p[a][1] < p[b][1]);
}
int main() {
  for (int i = (0); i < (4); i++) {
    for (int j = (0); j < (2); j++) {
      scanf("%d%d", &p[i][j].first, &p[i][j].second);
    }
    if (p[i][0].first == p[i][1].first) {
      if (p[i][0].second > p[i][1].second) swap(p[i][0], p[i][1]);
    } else {
      if (p[i][0].first > p[i][1].first) swap(p[i][0], p[i][1]);
    }
  }
  for (int i = (0); i < (4); i++) nom[i] = i;
  do {
    if (p[nom[1]][0].second == p[nom[1]][1].second &&
        p[nom[1]][0].first != p[nom[1]][1].first) {
      if (p[nom[0]][0].first == p[nom[0]][1].first &&
          p[nom[0]][0].second != p[nom[0]][1].second) {
        if (p[nom[2]][0].second == p[nom[2]][1].second &&
            p[nom[2]][0].first != p[nom[2]][1].first) {
          if (p[nom[3]][0].first == p[nom[3]][1].first &&
              p[nom[3]][0].second != p[nom[3]][1].second) {
            if (p[nom[0]][0] == p[nom[1]][0] && p[nom[0]][1] == p[nom[2]][0] &&
                p[nom[2]][1] == p[nom[3]][1] && p[nom[3]][0] == p[nom[1]][1]) {
              printf("YES\n");
              return 0;
            }
          }
        }
      }
    }
  } while (next_permutation(nom, nom + 4));
  printf("NO\n");
  return 0;
}
