#include <bits/stdc++.h>
int main(void) {
  char *p[2] = {"No", "Yes"};
  int n, i;
  scanf("%d", &n);
  if (n % 3 != 0) {
    int a;
    char f = 1;
    for (i = 0; i < n; i++) {
      scanf("%d", &a);
      if (a != 0) {
        f = 0;
        break;
      }
    }
    puts(p[f]);
  } else {
    int a;
    int k[3] = {-1, -1, -1};
    int l[3] = {0, 0, 0};
    char f = 1;
    for (i = 0; i < n; i++) {
      scanf("%d", &a);
      if (k[0] < 0 || k[0] == a) {
        k[0] = a;
        l[0]++;
      } else if (k[1] < 0 || k[1] == a) {
        k[1] = a;
        l[1]++;
      } else if (k[2] < 0 || k[2] == a) {
        k[2] = a;
        l[2]++;
      } else {
        f = 0;
        break;
      }
    }
    n = n / 3;
    printf("%d %d %d\n", k[0], k[1], k[2]);
    printf("%d %d %d\n", l[0], l[1], l[2]);
    if (k[1] < 0) {
      if (k[0] != 0) f = 0;
    } else if (k[2] < 0) {
      if (k[0] == 0) {
        if (l[0] != n || l[1] != n * 2) f = 0;
      } else if (k[1] == 0) {
        if (l[1] != n || l[0] != n * 2) f = 0;
      } else {
        f = 0;
      }
    } else {
      if ((k[0] ^ k[1] ^ k[2]) != 0) f = 0;
      if (l[0] != n || l[1] != n || l[2] != n) f = 0;
    }
    puts(p[f]);
  }
}
