#include <bits/stdc++.h>
using namespace std;
const int N = 2e5+10;
int n,cnt;
int a[N],b[N],temp;
int main() {
scanf("%d",&n);
for (int i = 1; i <= n; i++) scanf("%d",&a[i]);
sort(a+1, a+n+1);
cnt = 1;
vector<int>c;
a[0] = -233;
for (int i = 1; i <= n; i++) {
if (a[i] != a[i-1]) {
b[cnt++] = a[i];
}
else {
if (a[i] == temp) {
break;
}
else {
c.insert(c.begin(), a[i]);
temp = c[0];
}
}
}
cnt--;
if (cnt + (int)c.size() == n) {
printf("YES\n");
printf("%d\n",cnt);
for (int i = 1; i <= cnt; i++) printf("%d ",b[i]);
printf("\n");
printf("%d\n",(int)c.size());
for (int i = 0; i < (int)c.size();i++) printf("%d ",c[i]);
return 0;
} else {
printf("NO\n");
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBOID0gMmU1KzEwOwoKaW50IG4sY250OwppbnQgYVtOXSxiW05dLHRlbXA7CgppbnQgbWFpbigpIHsKCXNjYW5mKCIlZCIsJm4pOwoJZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBzY2FuZigiJWQiLCZhW2ldKTsKCXNvcnQoYSsxLCBhK24rMSk7CiAgICBjbnQgPSAxOwogICAgdmVjdG9yPGludD5jOwogICAgYVswXSA9IC0yMzM7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgIAlpZiAoYVtpXSAhPSBhW2ktMV0pIHsKICAgIAkJYltjbnQrK10gPSBhW2ldOwogICAgCX0KICAgIAkgZWxzZSB7CiAgICAJCWlmIChhW2ldID09IHRlbXApIHsKICAgIAkJCWJyZWFrOwogICAgCQl9CiAgICAJICAgIGVsc2UgewogICAgCQkJYy5pbnNlcnQoYy5iZWdpbigpLCBhW2ldKTsKICAgIAkJCXRlbXAgPSBjWzBdOwogICAgCQl9CiAgICAJfQogICAgfQogICAgY250LS07CiAgICBpZiAoY250ICsgKGludCljLnNpemUoKSA9PSBuKSB7CiAgICAJcHJpbnRmKCJZRVNcbiIpOwogICAgCXByaW50ZigiJWRcbiIsY250KTsKICAgIAlmb3IgKGludCBpID0gMTsgaSA8PSBjbnQ7IGkrKykgcHJpbnRmKCIlZCAiLGJbaV0pOwogICAgCXByaW50ZigiXG4iKTsKICAgICAgICBwcmludGYoIiVkXG4iLChpbnQpYy5zaXplKCkpOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgKGludCljLnNpemUoKTtpKyspIHByaW50ZigiJWQgIixjW2ldKTsKICAgICAgICByZXR1cm4gMDsKICAgIH0gZWxzZSB7CiAgICAJcHJpbnRmKCJOT1xuIik7CiAgICB9CglyZXR1cm4gMDsKfQ==