#include <bits/stdc++.h>
using namespace std;
bool check(int a, int b, int c, int d) {
  if (((a + b + c + d) % 4) != 0) return false;
  if (((b + c) % 2) != 0) return false;
  int mean, median, range;
  mean = (a + b + c + d) / 4;
  median = (b + c) / 2;
  range = d - a;
  if (mean == median && median == range) return true;
  return false;
}
int main(void) {
  int n;
  int boxes[4];
  cin >> n;
  for (int i = 0; i < 4; i++) boxes[i] = 600;
  for (int i = 0; i < n; i++) {
    cin >> boxes[i];
  }
  sort(boxes, boxes + 4);
  switch (n) {
    case 0:
      printf("YES\n1\n1\n3\n3\n");
      break;
    case 1:
      printf("YES\n%d\n%d\n%d\n", boxes[0], 3 * boxes[0], 3 * boxes[0]);
      break;
    case 2:
      if (3 * boxes[0] < boxes[1]) {
        printf("NO\n");
      } else {
        printf("YES\n%d\n%d\n", 4 * boxes[0] - boxes[1], 3 * boxes[0]);
      }
      break;
    case 3:
      if (boxes[2] > 3 * boxes[0]) {
        printf("NO\n");
        return 0;
      }
      if (check(boxes[0], boxes[1], boxes[2], 3 * boxes[0])) {
        printf("YES\n%d\n", 3 * boxes[0]);
      } else if (check(boxes[2] / 3, boxes[0], boxes[1], boxes[2])) {
        printf("YES\n%d\n", boxes[2] / 3);
      } else if (check(boxes[0], boxes[1], boxes[0] + boxes[2] - boxes[1],
                       boxes[2])) {
        printf("YES\n%d\n", boxes[0] + boxes[2] - boxes[1]);
      } else {
        printf("NO\n");
      }
      break;
    case 4:
      if (check(boxes[0], boxes[1], boxes[2], boxes[3])) {
        printf("YES\n");
      } else {
        printf("NO\n");
      }
      break;
  }
  return 0;
}
