N=int(input()) mem=[] for i in range(N): a=int(input()) mem.append([a, i]) if N == 1: if a == 0: print(-1) else: print(0) exit() mem=sorted(mem, key=lambda x: x[0]) res=[N-i-1 for i in range(N)] for i in range(N): if res[i] == mem[i][0]: j = i - 1 found=False while 0 <= j: if mem[j][0] == mem[i][0]: j -= 1 else: res[i], res[j] = res[j], res[i] found=True break if found: break j = i + 1 while j < N: if mem[j][0] == mem[i][0]: j += 1 else: res[i], res[j] = res[j], res[i] found=True break if found: break else: print(-1) exit() ans=[-1]*N for i in range(N): ans[mem[i][1]] = res[i] for i in ans: print(i)