\(n\) друзей хотят подарить друг другу подарки на Новый год. Каждый друг должен подарить ровно один подарок и получить ровно один подарок. Друг не может подарить подарок самому себе.
Для каждого друга известно значение \(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\). Каждый друг должен подарить ровно один подарок и получить ровно один подарок, а также не должно быть друга, который дарит подарок сам себе.
Если существует несколько возможных ответов, выведите любой.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
5 5 0 0 2 4
|
5 3 1 2 4
|
|
2
|
7 7 0 0 1 4 0 6
|
7 3 2 1 4 5 6
|
|
3
|
7 7 4 0 3 0 5 1
|
7 4 2 3 6 5 1
|
|
4
|
5 2 1 0 0 0
|
2 1 4 5 3
|