#include <bits/stdc++.h>
using namespace std;
struct node {
  int x, y;
};
bool check(node a, node b, node c, node d) {
  if (a.x == c.x && b.x == d.x && a.y == b.y && c.y == d.y && a.y != c.y &&
      b.y != d.y && a.x != b.x && c.x != d.x) {
    return 1;
  }
  return 0;
}
bool checkl(node vec) {
  if (vec.x == 0 && vec.y != 0 || vec.x != 0 && vec.y == 0) {
    return 1;
  } else {
    return 0;
  }
}
int main() {
  node a[15], b[15], c[15];
  int Size = 0;
  for (int i = 1; i <= 8; i++) scanf("%d%d", &a[i].x, &a[i].y);
  b[1].x = a[2].x - a[1].x;
  b[1].y = a[2].y - a[1].y;
  b[2].x = a[4].x - a[3].x;
  b[2].y = a[4].y - a[3].y;
  b[3].x = a[6].x - a[5].x;
  b[3].y = a[6].y - a[5].y;
  b[4].x = a[8].x - a[7].x;
  b[4].y = a[8].y - a[7].y;
  int shu = 0, hen = 0;
  for (int i = 1; i <= 4; i++) {
    if (b[i].x == 0 && b[i].y != 0) shu++;
    if (b[i].y == 0 && b[i].x != 0) hen++;
  }
  if (!(hen == 2 && shu == 2)) {
    puts("NO");
    return 0;
  }
  for (int i = 1; i <= 8; i++) {
    bool findx = 0;
    for (int j = 0; j < Size; j++) {
      if (a[i].x == c[j].x && a[i].y == c[j].y) {
        findx = 1;
        break;
      }
    }
    if (findx == 0) {
      c[Size].x = a[i].x;
      c[Size].y = a[i].y;
      Size++;
    }
  }
  if (Size != 4) {
    puts("NO");
  } else {
    if (check(c[0], c[1], c[2], c[3]) || check(c[0], c[1], c[3], c[2]) ||
        check(c[0], c[2], c[1], c[3]) || check(c[0], c[2], c[3], c[1]) ||
        check(c[0], c[3], c[1], c[2]) || check(c[0], c[3], c[2], c[1]) ||
        check(c[1], c[0], c[2], c[3]) || check(c[1], c[0], c[3], c[2]) ||
        check(c[1], c[2], c[0], c[3]) || check(c[1], c[2], c[3], c[0]) ||
        check(c[1], c[3], c[0], c[2]) || check(c[1], c[3], c[2], c[0]) ||
        check(c[2], c[1], c[0], c[3]) || check(c[2], c[1], c[3], c[0]) ||
        check(c[2], c[0], c[1], c[3]) || check(c[2], c[0], c[3], c[1]) ||
        check(c[2], c[3], c[1], c[0]) || check(c[2], c[3], c[0], c[1]) ||
        check(c[3], c[1], c[0], c[2]) || check(c[3], c[1], c[2], c[0]) ||
        check(c[3], c[0], c[1], c[2]) || check(c[3], c[0], c[2], c[1]) ||
        check(c[3], c[2], c[0], c[1]) || check(c[3], c[2], c[1], c[0])) {
      if (checkl(b[1]) && checkl(b[2]) && checkl(b[3]) && checkl(b[4])) {
        puts("YES");
      } else {
        puts("NO");
      }
    } else {
      puts("NO");
    }
  }
  return 0;
}
