N = int(input()) A = [int(input()) for _ in range(N)] B = [[] for _ in range(N)] rem = [] tmp = N for i in range(N): if A[i] < N: B[A[i]].append(i) tmp = A[i] if tmp == N: for i in range(N): print(i) exit() if len(B[tmp]) == N: print(-1) exit() nu = [] C = [] for i in range(N): if B[i] == []: nu.append(i) else: C.append((len(B[i]),i)) C.sort() NC = len(C) ans = [-1] * N if NC > 1: nu.append(C[-1][1]) for _,c in C: for b in B[c]: ans[b] = nu.pop() nu.append(c) elif NC == 1: c = C[0][1] ans[c] =nu.pop() nu.append(c) for i in range(N): if ans[i] == -1: ans[i] = nu.pop() for a in ans: print(a)