#include <bits/stdc++.h>
using namespace std;
const int MAXN = 5000 + 10;
struct Node {
  int x, y;
};
int main() {
  Node p[8];
  while (scanf("%d%d%d%d", &p[0].x, &p[0].y, &p[1].x, &p[1].y) != EOF) {
    for (int i = 2; i < 8; i++) {
      scanf("%d%d", &p[i].x, &p[i].y);
    }
    bool flag = true;
    for (int i = 0; i < 8; i++) {
      int cnt = 0;
      for (int j = 0; j < 8; j++) {
        if (p[i].x == p[j].x && p[i].y == p[j].y) cnt++;
      }
      if (cnt != 2) {
        flag = false;
        break;
      }
    }
    if (flag == false) {
      printf("NO\n");
      continue;
    }
    int tx = 0, ty = 0;
    for (int i = 0; i < 4; i++) {
      if (p[i * 2].x == p[i * 2 + 1].x && p[i * 2].y != p[i * 2 + 1].y) tx++;
      if (p[i * 2].x != p[i * 2 + 1].x && p[i * 2].y == p[i * 2 + 1].y) ty++;
    }
    if (!(tx == 2 && ty == 2)) flag = false;
    if (flag)
      printf("YES\n");
    else
      printf("NO\n");
  }
  return 0;
}
