#include <bits/stdc++.h>
using namespace std;
int min(int x, int y) {
  if (y >= x) {
    return x;
  }
  return y;
}
int get(int a, int b, int c, int d, int i) {
  int arr[] = {a, b, c, d};
  for (int x = 0; x < 4; x++) {
    for (int y = 0; y < 3; y++) {
      if (arr[y] > arr[y + 1]) {
        int swap = arr[y];
        arr[y] = arr[y + 1];
        arr[y + 1] = swap;
      }
    }
  }
  return arr[i];
}
bool valid(int a, int b, int c, int d) {
  int p = get(a, b, c, d, 0);
  int q = get(a, b, c, d, 1);
  int r = get(a, b, c, d, 2);
  int s = get(a, b, c, d, 3);
  int mean = p + q + r + s;
  int med = 2 * (q + r);
  int range = 4 * (s - p);
  if (mean == med && med == range) {
    return true;
  }
  return false;
}
int main() {
  int n;
  cin >> n;
  int a, b, c, d;
  if (n == 4) {
    cin >> a >> b >> c >> d;
    if (valid(a, b, c, d)) {
      cout << "YES";
    } else {
      cout << "NO";
    }
  } else if (n == 3) {
    cin >> a;
    cin >> b;
    cin >> c;
    int m = min(a, min(b, c));
    bool found = false;
    for (d = 1; d <= m * 3; d++) {
      if (valid(a, b, c, d)) {
        cout << "YES\n";
        cout << d;
        found = true;
        break;
      }
    }
    if (!found) cout << "NO";
  } else if (n == 2) {
    cin >> a;
    cin >> b;
    int m = min(a, b);
    bool found = false;
    for (d = 1; d <= m * 3; d++) {
      for (c = 1; c <= d; c++) {
        if (valid(a, b, c, d)) {
          cout << "YES\n";
          cout << d << "\n";
          cout << c;
          found = true;
          break;
        }
      }
      if (found) break;
    }
    if (!found) cout << "NO";
  } else if (n == 1) {
    cin >> a;
    d = 3 * a;
    c = 2 * a;
    b = 2 * a;
    cout << "YES\n";
    cout << d << "\n";
    cout << c << "\n";
    cout << b;
  } else {
    cout << "YES\n1\n1\n3\n3";
  }
}
