#!/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()