#include <bits/stdc++.h>
int N;
std::map<int, int> G;
int main() {
  scanf("%d", &N);
  for (int i = 0, x; i < N; i++) {
    scanf("%d", &x);
    G[x]++;
  }
  if (G.size() != 2) {
    puts("NO");
    return 0;
  }
  std::vector<std::pair<int, int> > V(G.begin(), G.end());
  if (V[0].second != V[1].second) {
    puts("NO");
    return 0;
  }
  printf("YES\n%d %d\n", V[0].first, V[1].first);
  return 0;
}
