#include <bits/stdc++.h>
using namespace std;
class Solution {
 public:
  bool split(vector<int>& A, vector<int>& inc, vector<int>& dec) {
    map<int, int> map;
    for (int e : A) map[e]++;
    for (const pair<int, int>& p : map) {
      if (p.second > 2) return false;
      inc.push_back(p.first);
      if (p.second == 2) dec.push_back(p.first);
    }
    sort(dec.begin(), dec.end(), greater<int>());
    return true;
  }
};
int main() {
  int n;
  cin >> n;
  vector<int> a(n);
  for (int i = 0; i < n; i++) cin >> a[i];
  vector<int> inc, dec;
  if (Solution().split(a, inc, dec)) {
    cout << "YES" << endl;
    cout << inc.size() << endl;
    for (int e : inc) cout << e << " ";
    cout << endl;
    cout << dec.size() << endl;
    for (int e : dec) cout << e << " ";
    cout << endl;
  } else
    cout << "NO" << endl;
  return 0;
}
