#include <bits/stdc++.h>
using namespace std;
int vis[3000];
struct node {
  int w, id;
} s[3000];
bool cmp(node x, node y) { return x.w < y.w; }
int main() {
  int n, i;
  scanf("%d", &n);
  for (i = 1; i <= n; i++) {
    scanf("%d", &s[i].w);
    s[i].id = i;
  }
  sort(s + 1, s + 1 + n, cmp);
  int flag = 0, r = 0;
  int temp;
  for (i = 1; i <= n; i++) {
    vis[s[i].w]++;
    if (vis[s[i].w] == 3) {
      temp = i;
      flag = 1;
      break;
    }
  }
  if (flag == 1) {
    printf("YES\n");
    for (i = 1; i <= temp - 3; i++) {
      printf("%d ", s[i].id);
    }
    printf("%d %d %d ", s[temp - 2].id, s[temp - 1].id, s[temp].id);
    for (i = temp + 1; i <= n; i++) {
      printf("%d ", s[i].id);
    }
    printf("\n");
    for (i = 1; i <= temp - 3; i++) {
      printf("%d ", s[i].id);
    }
    printf("%d %d %d ", s[temp - 1].id, s[temp - 2].id, s[temp].id);
    for (i = temp + 1; i <= n; i++) {
      printf("%d ", s[i].id);
    }
    printf("\n");
    for (i = 1; i <= temp - 3; i++) {
      printf("%d ", s[i].id);
    }
    printf("%d %d %d ", s[temp].id, s[temp - 1].id, s[temp - 2].id);
    for (i = temp + 1; i <= n; i++) {
      printf("%d ", s[i].id);
    }
    printf("\n");
  }
  memset(vis, 0, sizeof(vis));
  if (flag != 1) {
    int s1 = 0, s2 = 0;
    for (i = 1; i <= n; i++) {
      vis[s[i].w]++;
      if (vis[s[i].w] == 2 && s1 == 0) {
        s1 = i;
      } else if (vis[s[i].w] == 2) {
        s2 = i;
      }
    }
    if (s1 != 0 && s2 != 0) {
      printf("YES\n");
      r = 1;
      for (i = 1; i <= s1 - 2; i++) {
        printf("%d ", s[i].id);
      }
      printf("%d %d ", s[s1].id, s[s1 - 1].id);
      for (i = s1 + 1; i <= n; i++) {
        printf("%d ", s[i].id);
      }
      printf("\n");
      for (i = 1; i <= s1 - 2; i++) {
        printf("%d ", s[i].id);
      }
      printf("%d %d ", s[s1 - 1].id, s[s1].id);
      for (i = s1 + 1; i <= n; i++) {
        printf("%d ", s[i].id);
      }
      printf("\n");
      for (i = 1; i <= s2 - 2; i++) {
        printf("%d ", s[i].id);
      }
      printf("%d %d ", s[s2].id, s[s2 - 1].id);
      for (i = s2 + 1; i <= n; i++) {
        printf("%d ", s[i].id);
      }
      printf("\n");
    }
  }
  if (flag == 0 && r == 0) printf("NO\n");
}
