n cards (n

different from the number that Petya chose). During the game each player takes all the cards with number he chose. For example, if Petya chose number 5 before the game he will take all cards on which 5 is written and if Vasya chose number 10 before the game he will take all cards on which 10

n

Determine whether Petya and Vasya can choose integer numbers before the game so that the game is fair.


Input



n (2 ≤ n ≤ 100) — number of cards. It is guaranteed that n

n lines contain a sequence of integers a1, a2, ..., an (one integer per line, 1 ≤ ai) — numbers written on the ncards.


Output



NO" (without quotes) in the first line. In this case you should not print anything more.

YES" (without quotes) in the first line. In the second line print two distinct integers — number that Petya should choose and the number that Vasya should choose to make the game fair. If there are several solutions, print any of them.


Examples



input



4 11 27 27 11



output



YES 11 27



input



2 6 6



output



NO



input



6 10 20 30 20 10 20



output



NO



input



6 1 1 2 2 3 3



output



NO


题目大概:

有n张牌,问是否可以分成相同数量的两份,每份都是一样的牌。

代码:

#include <iostream>
#include <cstdio>
using namespace std;
int a[102];
int b[102];

int main()
{ int n;
cin>>n;
int k=0;
for(int i=1;i<=n;i++)
{
int q;
scanf("%d",&q);
if(!b[q]){b[q]++;k++;a[k]=q;}
else {b[q]++;}
}
if(k!=2)printf("NO\n");
else {
if(b[a[1]]==b[a[2]])printf("YES\n%d %d",a[1],a[2]);
else printf("NO\n");
}

return 0;
}