#include <bits/stdc++.h>
using namespace std;
const int N = 100002;
int n, m, f[N], g[N], h[N], r[N];
set<int> s;
int main() {
  std::ios::sync_with_stdio(false);
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%d", f + i);
    s.insert(f[i]);
  }
  m = s.size();
  int cnt = 1;
  for (set<int>::iterator it = s.begin(); it != s.end(); it++)
    h[cnt++] = *it, r[*it] = cnt - 1;
  for (int i = 1; i <= m; i++) g[h[i]] = i;
  for (int i = 1; i <= n; i++) {
    if (g[i] == 0) {
      g[i] = r[f[i]];
    }
  }
  for (int i = 1; i <= n; i++)
    if (h[g[i]] != f[i]) {
      puts("-1");
      return 0;
    }
  for (int i = 1; i <= m; i++)
    if (g[h[i]] != i) {
      puts("-1");
      return 0;
    }
  printf("%d\n", m);
  for (int i = 1; i <= n; i++) printf("%d ", g[i]);
  puts("");
  for (int i = 1; i <= m; i++) printf("%d ", h[i]);
  puts("");
  return 0;
}
