C. Друзья и подарки
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

$$$n$$$ друзей хотят подарить друг другу подарки на Новый год. Каждый друг должен подарить ровно один подарок и получить ровно один подарок. Друг не может подарить подарок самому себе.

Для каждого друга известно значение $$$f_i$$$: оно или равно $$$f_i = 0$$$, если $$$i$$$-й друг не знает, кому он хочет подарить подарок, или равно $$$1 \le f_i \le n$$$, если $$$i$$$-й друг хочет подарить подарок другу $$$f_i$$$.

Вы хотите заполнить неизвестные значения ($$$f_i = 0$$$) таким образом, чтобы каждый друг подарил ровно один подарок и получил ровно один подарок, а также не было друга, который дарит подарок сам себе. Гарантируется, что изначальная информация не противоречива.

Если существует несколько возможных ответов, выведите любой.

Входные данные

Первая строка входных данных содержит одно целое число $$$n$$$ ($$$2 \le n \le 2 \cdot 10^5$$$) — количество друзей.

Вторая строка входных данных содержит $$$n$$$ целых чисел $$$f_1, f_2, \dots, f_n$$$ ($$$0 \le f_i \le n$$$, $$$f_i \ne i$$$, все $$$f_i \ne 0$$$ различны), где $$$f_i$$$ или равно $$$f_i = 0$$$, если $$$i$$$-й друг не знает, кому он хочет подарить подарок, или равно $$$1 \le f_i \le n$$$, если $$$i$$$-й друг хочет подарить подарок другу $$$f_i$$$. Также гарантируется, что есть хотя бы два значения $$$f_i = 0$$$.

Выходные данные

Выведите $$$n$$$ целых чисел $$$nf_1, nf_2, \dots, nf_n$$$, где $$$nf_i$$$ должно быть равно $$$f_i$$$, если $$$f_i \ne 0$$$, или номеру друга, которому $$$i$$$-й друг хочет подарить подарок. Все значения $$$nf_i$$$ должны быть различны, $$$nf_i$$$ не может быть равно $$$i$$$. Каждый друг должен подарить ровно один подарок и получить ровно один подарок, а также не должно быть друга, который дарит подарок сам себе.

Если существует несколько возможных ответов, выведите любой.

Примеры
Входные данные
5
5 0 0 2 4
Выходные данные
5 3 1 2 4 
Входные данные
7
7 0 0 1 4 0 6
Выходные данные
7 3 2 1 4 5 6 
Входные данные
7
7 4 0 3 0 5 1
Выходные данные
7 4 2 3 6 5 1 
Входные данные
5
2 1 0 0 0
Выходные данные
2 1 4 5 3