#include <bits/stdc++.h>
using namespace std;
const int N = 1000008;
int n, f[N], g[N], h[N], a[N];
int main(void) {
  int i;
  scanf("%d", &n);
  for (i = 1; i <= n; i++) scanf("%d", f + i);
  for (i = 1; i <= n; i++)
    if (f[i] == i) h[a[i] = ++h[0]] = i;
  for (i = 1; i <= n; i++)
    if (a[f[i]] == 0) {
      cout << -1;
      return 0;
    }
  for (i = 1; i <= n; i++) g[i] = a[f[i]];
  printf("%d\n", h[0]);
  printf("%d", g[1]);
  for (i = 2; i <= n; i++) printf(" %d", g[i]);
  printf("\n%d", h[1]);
  for (i = 2; i <= h[0]; i++) printf(" %d", h[i]);
  return 0;
}
