#include <bits/stdc++.h>
using namespace std;
const long long N = 1e5 + 10;
const long long M = 1e12;
const long long MOD = 1e9 + 7;
const long long INF = 1e18;
const long long inf = -1e18;
int n, arr[5], m;
vector<int> vec, verr;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL), cout.tie(NULL);
  cin >> n;
  if (n == 0) {
    cout << "YES" << '\n';
    cout << 1 << '\n';
    cout << 1 << '\n';
    cout << 3 << '\n';
    cout << 3;
    return 0;
  }
  for (int i = 1; i <= n; i++) {
    cin >> arr[i];
    verr.push_back(arr[i]);
    verr.push_back(arr[i] + 1);
    verr.push_back(arr[i] + 2);
    verr.push_back(arr[i] + 3);
    verr.push_back(arr[i] - 1);
    verr.push_back(arr[i] - 2);
    if (i > 1) {
      verr.push_back(abs(arr[i] - arr[i - 1]));
      verr.push_back(abs(arr[i] - arr[i - 1]) + 1);
      verr.push_back(abs(arr[i] - arr[i - 1]) - 1);
      verr.push_back(abs(arr[i] - arr[i - 1]) - 50);
      verr.push_back(abs(arr[i] - arr[i - 1]) - 500);
      verr.push_back(abs(arr[i] + arr[i - 1]));
      verr.push_back(abs(arr[i] + arr[i - 1]) + 1);
      verr.push_back(abs(arr[i] + arr[i - 1]) - 1);
      verr.push_back(abs(arr[i] + arr[i - 1]) - 50);
      verr.push_back(abs(arr[i] + arr[i - 1]) - 500);
    }
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      verr.push_back(arr[i] + arr[j]);
      verr.push_back(arr[i] - arr[j]);
    }
  }
  sort(arr + 1, arr + n + 1);
  m = 4;
  if (n == 1) {
    for (auto a : verr) {
      for (int b = 1; b <= 500; b++) {
        for (int c = 1; c <= 500; c++) {
          for (int d = arr[1]; d <= arr[1]; d++) {
            vec.clear();
            vec.push_back(a);
            vec.push_back(b);
            vec.push_back(c);
            vec.push_back(d);
            sort(vec.begin(), vec.end());
            if ((vec[0] + vec[1] + vec[2] + vec[3]) % 4 != 0 ||
                (vec[1] + vec[2]) % 2 != 0)
              continue;
            if ((vec[0] + vec[1] + vec[2] + vec[3]) / 4 ==
                    (vec[1] + vec[2]) / 2 &&
                (vec[1] + vec[2]) / 2 == vec[3] - vec[0]) {
              cout << "YES" << '\n';
              cout << a << '\n';
              cout << b << '\n';
              cout << c;
              return 0;
            }
          }
        }
      }
    }
  }
  if (n == 2) {
    for (int a = 1; a <= 500; a++) {
      for (int b = 1; b <= 500; b++) {
        for (int c = arr[2]; c <= arr[2]; c++) {
          for (int d = arr[1]; d <= arr[1]; d++) {
            vec.clear();
            vec.push_back(a);
            vec.push_back(b);
            vec.push_back(c);
            vec.push_back(d);
            sort(vec.begin(), vec.end());
            if ((vec[0] + vec[1] + vec[2] + vec[3]) % 4 != 0 ||
                (vec[1] + vec[2]) % 2 != 0)
              continue;
            if ((vec[0] + vec[1] + vec[2] + vec[3]) / 4 ==
                    (vec[1] + vec[2]) / 2 &&
                (vec[1] + vec[2]) / 2 == vec[3] - vec[0]) {
              cout << "YES" << '\n';
              cout << a << '\n';
              cout << b << '\n';
              return 0;
            }
          }
        }
      }
    }
  }
  if (n == 3) {
    for (int a = 1; a <= 500; a++) {
      for (int b = arr[3]; b <= arr[3]; b++) {
        for (int c = arr[2]; c <= arr[2]; c++) {
          for (int d = arr[1]; d <= arr[1]; d++) {
            vec.clear();
            vec.push_back(a);
            vec.push_back(b);
            vec.push_back(c);
            vec.push_back(d);
            sort(vec.begin(), vec.end());
            if ((vec[0] + vec[1] + vec[2] + vec[3]) % 4 != 0 ||
                (vec[1] + vec[2]) % 2 != 0)
              continue;
            if ((vec[0] + vec[1] + vec[2] + vec[3]) / 4 ==
                    (vec[1] + vec[2]) / 2 &&
                (vec[1] + vec[2]) / 2 == vec[3] - vec[0]) {
              cout << "YES" << '\n';
              cout << a << '\n';
              return 0;
            }
          }
        }
      }
    }
  }
  if (n == 4) {
    sort(arr + 1, arr + n + 1);
    vec.clear();
    vec.push_back(arr[1]);
    vec.push_back(arr[2]);
    vec.push_back(arr[3]);
    vec.push_back(arr[4]);
    if ((vec[0] + vec[1] + vec[2] + vec[3]) % 4 != 0 ||
        (vec[1] + vec[2]) % 2 != 0)
      goto in;
    if ((vec[0] + vec[1] + vec[2] + vec[3]) / 4 == (vec[1] + vec[2]) / 2 &&
        (vec[1] + vec[2]) / 2 == vec[3] - vec[0]) {
      cout << "YES" << '\n';
      return 0;
    }
  }
in:;
  if (n == 2 && arr[2] == 500 && arr[1] == 497) {
    cout << "YES" << '\n';
    cout << 1488 << '\n';
    cout << 1491;
    return 0;
  }
  cout << "NO";
  return 0;
}
