#include <bits/stdc++.h>
using namespace std;
const long long infinity = 100000000000000LL;
int fx[] = {1, -1, 0, 0, 1, 1, -1, -1};
int fy[] = {0, 0, -1, 1, 1, -1, 1, -1};
vector<long long> V;
long long check() {
  int a = 0, b = 0, c;
  double x, y, z;
  sort(V.begin(), V.end());
  for (int i = 0; i < 4; i++) {
    a += V[i];
  }
  x = (double)a;
  x /= 4;
  b = V[1] + V[2];
  y = double(b);
  y /= 2;
  c = V[3] - V[0];
  z = double(c);
  if (x == y and y == z and z == x) return 1;
  return 0;
}
int main() {
  long long a, b = 0, c, d, e, f = 0, n;
  scanf("%I64d", &n);
  V.clear();
  for (a = 1; a <= n; a++) {
    long long val;
    scanf("%I64d", &val);
    V.push_back(val);
  }
  if (n == 0) {
    puts("YES");
    printf("1\n1\n3\n3\n");
    return (0);
  }
  if (n == 4) {
    b = check();
    if (b == 0) {
      puts("NO");
      return (0);
    }
    puts("YES");
    return (0);
  }
  if (n == 1) {
    puts("YES");
    printf("%I64d\n", V[0] * 2);
    printf("%I64d\n", V[0] * 2);
    printf("%I64d\n", V[0] * 3);
    return (0);
  }
  if (n == 3) {
    sort(V.begin(), V.end());
    if (V[0] * 3 == V[2]) {
      V.push_back(V[0] * 4 - V[1]);
      a = V[0] * 4 - V[1];
    } else if ((V[0] + V[1]) * 3 == V[2] * 4 and (V[0] + V[1]) % 4 == 0) {
      V.push_back((V[0] + V[1]) / 4);
      a = (V[0] + V[1]) / 4;
    } else if (V[0] * 4 == (V[1] + V[2])) {
      V.push_back(V[0] * 3);
      a = V[0] * 3;
    }
    sort(V.begin(), V.end());
    if (V.size() < 4) {
      puts("NO");
      return (0);
    }
    b = check();
    if (b == 0) {
      puts("NO");
      return (0);
    }
    puts("YES");
    printf("%I64d\n", a);
    return (0);
  }
  if (n == 2) {
    sort(V.begin(), V.end());
    if (V[0] * 3 < V[1]) {
      puts("NO");
      return (0);
    }
    if (V[0] * 3 == V[1]) {
      V.push_back(V[0] * 2);
      V.push_back(V[0] * 2);
      a = V[0] * 2;
      b = V[0] * 2;
    } else if ((V[0] + V[1]) % 4 == 0) {
      V.push_back((V[0] + V[1]) / 4);
      V.push_back(((V[0] + V[1]) * 3) / 4);
      a = (V[0] + V[1]) / 4;
      b = ((V[0] + V[1]) * 3) / 4;
    } else if (V[0] * 4 > V[1]) {
      V.push_back(V[0] * 3);
      V.push_back(V[0] * 4 - V[1]);
      a = V[0] * 3;
      b = V[0] * 4 - V[1];
    } else if (V[1] % 3 == 0) {
      V.push_back(V[1] / 3);
      V.push_back(V[3] * 4 - V[0]);
      a = V[1] / 3;
      b = V[3] * 4 - V[0];
    }
    if (V.size() < 4) {
      puts("NO");
      return (0);
    }
    c = check();
    if (c == 0) {
      puts("NO");
      return (0);
    }
    puts("YES");
    printf("%I64d\n%I64d\n", a, b);
    return (0);
  }
  return (0);
}
