#include <bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
double pi = 3.1415926535898;
const long long M = 1e9 + 7;
const int N = 50500;
const int inf = INT_MAX;
const double eps = 1e-6;
int n;
set<int> st;
int a[20200];
pair<int, int> p[20200];
int main() {
  cin >> n;
  for (int i = 0; i < int(n); i++) {
    cin >> a[i];
    st.insert(a[i]);
    p[i] = {a[i], i + 1};
  }
  if (int(st.size()) > n - 2) return 0 * puts("NO");
  sort(p, p + n);
  puts("YES");
  int id = 0;
  int f = 1;
  for (int i = 0; i < int(n); i++) {
    cout << p[i].second << ' ';
    if (i) {
      if (p[i].first == p[i - 1].first) {
        if (f) {
          id = i;
          f = 0;
        }
      }
    }
  }
  cout << endl;
  swap(p[id], p[id - 1]);
  f = 1;
  for (int i = 0; i < int(n); i++) {
    cout << p[i].second << ' ';
    if (i) {
      if (p[i].first == p[i - 1].first) {
        if (i > id && f) {
          id = i;
          f = 0;
        }
      }
    }
  }
  cout << endl;
  swap(p[id], p[id - 1]);
  f = 1;
  for (int i = 0; i < int(n); i++) {
    cout << p[i].second << ' ';
    if (i) {
      if (p[i].first == p[i - 1].first) {
        if (i > id && f) {
          id = i;
          f = 0;
        }
      }
    }
  }
}
