#include <bits/stdc++.h>
using namespace std;
int main() {
  long long int n, i, count, flag, j, x;
  cin >> n;
  long long int h[n], a[n], c[n], maxc, no2, task[n], temp, tasknumber[n][n],
      flaggy;
  flaggy = 0;
  for (i = 0; i < n; i++) {
    cin >> h[i];
  }
  for (i = 0; i < n; i++) {
    c[i] = 0;
    task[i] = i + 1;
  }
  for (i = (n - 1); i >= 0; i--) {
    for (j = 0; j < i; j++) {
      if (h[j] > h[j + 1]) {
        temp = h[j + 1];
        h[j + 1] = h[j];
        h[j] = temp;
        temp = task[j + 1];
        task[j + 1] = task[j];
        task[j] = temp;
      }
    }
  }
  a[0] = h[0];
  count = 1;
  c[0] = 1;
  maxc = 1;
  no2 = 0;
  tasknumber[0][0] = task[0];
  for (i = 1; i < n; i++) {
    flag = 0;
    for (j = 0; j < count; j++) {
      if (h[i] == a[j]) {
        flag = 1;
        c[j] = c[j] + 1;
        tasknumber[j][(c[j] - 1)] = task[i];
        if (c[j] > maxc) {
          maxc = c[j];
        }
        if (c[j] == 2) {
          no2 = no2 + 1;
        }
        break;
      }
    }
    if (flag == 1) {
    } else {
      count++;
      a[count - 1] = h[i];
      c[count - 1] = 1;
      tasknumber[count - 1][0] = task[i];
    }
  }
  if (maxc >= 3) {
    cout << "YES" << endl;
    for (x = 0; x < 3; x++) {
      for (i = 0; i < count; i++) {
        if (c[i] == 1) {
          cout << tasknumber[i][0] << " ";
        } else if (c[i] == 2) {
          cout << tasknumber[i][0] << " " << tasknumber[i][1] << " ";
        } else if (c[i] == 3) {
          if (x == 0) {
            cout << tasknumber[i][0] << " " << tasknumber[i][1] << " "
                 << tasknumber[i][2] << " ";
          }
          if (x == 1) {
            cout << tasknumber[i][0] << " " << tasknumber[i][2] << " "
                 << tasknumber[i][1] << " ";
          }
          if (x == 2) {
            cout << tasknumber[i][1] << " " << tasknumber[i][0] << " "
                 << tasknumber[i][2] << " ";
          }
        } else if (c[i] >= 3) {
          if (x == 0) {
            cout << tasknumber[i][0] << " " << tasknumber[i][1] << " "
                 << tasknumber[i][2] << " ";
            for (j = 3; j < c[i]; j++) {
              cout << tasknumber[i][j] << " ";
            }
          }
          if (x == 1) {
            cout << tasknumber[i][0] << " " << tasknumber[i][2] << " "
                 << tasknumber[i][1] << " ";
            for (j = 3; j < c[i]; j++) {
              cout << tasknumber[i][j] << " ";
            }
          }
          if (x == 2) {
            cout << tasknumber[i][1] << " " << tasknumber[i][0] << " "
                 << tasknumber[i][2] << " ";
            for (j = 3; j < c[i]; j++) {
              cout << tasknumber[i][j] << " ";
            }
          }
        }
      }
      cout << endl;
    }
  } else if (maxc == 2) {
    if (no2 >= 2) {
      cout << "YES" << endl;
      for (x = 0; x < 3; x++) {
        flaggy = 0;
        for (i = 0; i < count; i++) {
          if (c[i] == 1) {
            cout << tasknumber[i][0] << " ";
          } else if (c[i] == 2) {
            flaggy = flaggy + 1;
            if (x == 0) {
              if (flaggy == 1) {
                cout << tasknumber[i][0] << " " << tasknumber[i][1] << " ";
              }
              if (flaggy == 2) {
                cout << tasknumber[i][0] << " " << tasknumber[i][1] << " ";
              } else if (flaggy >= 3) {
                cout << tasknumber[i][0] << " " << tasknumber[i][1] << " ";
              }
            }
            if (x == 1) {
              if (flaggy == 1) {
                cout << tasknumber[i][1] << " " << tasknumber[i][0] << " ";
              }
              if (flaggy == 2) {
                cout << tasknumber[i][0] << " " << tasknumber[i][1] << " ";
              } else if (flaggy >= 3) {
                cout << tasknumber[i][0] << " " << tasknumber[i][1] << " ";
              }
            }
            if (x == 2) {
              if (flaggy == 1) {
                cout << tasknumber[i][0] << " " << tasknumber[i][1] << " ";
              }
              if (flaggy == 2) {
                cout << tasknumber[i][1] << " " << tasknumber[i][0] << " ";
              } else if (flaggy >= 3) {
                cout << tasknumber[i][0] << " " << tasknumber[i][1] << " ";
              }
            }
          }
        }
        if (x == 2) {
          break;
        }
        cout << endl;
      }
    } else {
      cout << "NO";
    }
  } else {
    cout << "NO";
  }
  return 0;
}
