#include <bits/stdc++.h>
using namespace std;
int viz[2001];
int v[2001], b[2001];
int poz[2001], pozaux[2001];
int n;
void interclasare(int st, int dr, int mijloc) {
  int i = st, j = mijloc + 1, k = 0;
  while (i <= mijloc && j <= dr) {
    if (v[i] < v[j]) {
      ++k;
      b[k] = v[i];
      pozaux[k] = poz[i];
      ++i;
    } else {
      ++k;
      b[k] = v[j];
      pozaux[k] = poz[j];
      ++j;
    }
  }
  for (int k1 = i; k1 <= mijloc; ++k1) {
    ++k;
    b[k] = v[k1];
    pozaux[k] = poz[k1];
  }
  for (int k1 = j; k1 <= dr; ++k1) {
    ++k;
    b[k] = v[k1];
    pozaux[k] = poz[k1];
  }
  k = 0;
  for (i = st; i <= dr; ++i) {
    ++k;
    v[i] = b[k];
    poz[i] = pozaux[k];
  }
}
void sort(int st, int dr) {
  if (dr - st <= 1) {
    if (v[st] > v[dr]) {
      int aux = v[st];
      v[st] = v[dr];
      v[dr] = aux;
      aux = poz[st];
      poz[st] = poz[dr];
      poz[dr] = aux;
    }
  } else {
    int mijloc = (st + dr) / 2;
    sort(st, mijloc);
    sort(mijloc + 1, dr);
    interclasare(st, dr, mijloc);
  }
}
int main() {
  cin >> n;
  for (int i = 1; i <= n; ++i) {
    cin >> v[i];
    ++viz[v[i]];
    poz[i] = i;
  }
  int nr = 0;
  for (int i = 1; i <= 2000; ++i) {
    if (viz[i] > 1) nr += viz[i];
  }
  if (nr < 3)
    cout << "NO";
  else {
    cout << "YES\n";
    sort(1, n);
    for (int i = 1; i <= n; ++i) {
      cout << poz[i] << " ";
    }
    cout << "\n";
    int i = 1;
    int nr = 0;
    while (i < n && v[i] != v[i + 1]) {
      ++nr;
      pozaux[nr] = poz[i];
      ++i;
    }
    ++nr;
    pozaux[nr] = poz[i + 1];
    ++nr;
    pozaux[nr] = poz[i];
    i += 2;
    for (int j = i; j <= n; ++j) {
      ++nr;
      pozaux[nr] = poz[j];
    }
    for (int j = 1; j <= n; ++j) cout << pozaux[j] << " ";
    cout << "\n";
    nr = 0;
    i = n;
    while (i > 1 && v[i] != v[i - 1]) {
      ++nr;
      pozaux[nr] = poz[i];
      --i;
    }
    ++nr;
    pozaux[nr] = poz[i - 1];
    ++nr;
    pozaux[nr] = poz[i];
    i -= 2;
    for (int j = i; j >= 1; --j) {
      ++nr;
      pozaux[nr] = poz[j];
    }
    for (int j = nr; j >= 1; --j) cout << pozaux[j] << " ";
  }
  return 0;
}
