#!/usr/bin/env python3 # -*- coding: utf-8 -*- import array import random MAX_TRIAL = 10 ** 6 class NoSolutionError(Exception): pass def is_valid(candidate, bad_numbers): return all(c != b for c, b in zip(candidate, bad_numbers)) def solve(num_of_pupils, bad_numbers, trial=MAX_TRIAL): candidate = array.array("B", range(num_of_pupils)) if len(set(bad_numbers)) == 1 and bad_numbers[0] in candidate: raise NoSolutionError for _ in range(trial): random.shuffle(candidate) if is_valid(candidate, bad_numbers): return candidate else: raise NoSolutionError def main(): num_of_pupils = int(input()) bad_numbers = array.array("B", (int(input()) for _ in range(num_of_pupils))) try: answer = solve(num_of_pupils, bad_numbers) except NoSolutionError: print(-1) else: for x in answer: print(x) if __name__ == '__main__': main()