CF798E Mike and code of a permutation

Description

Mike has discovered a new way to encode permutations. If he has a permutation $ P=[p_{1},p_{2},...,p_{n}] $ , he will encode it in the following way: Denote by $ A=[a_{1},a_{2},...,a_{n}] $ a sequence of length $ n $ which will represent the code of the permutation. For each $ i $ from $ 1 $ to $ n $ sequentially, he will choose the smallest unmarked $ j $ ( $ 1\le j\le n $ ) such that $ p_{i}

Input Format

The first line contains single integer $ n $ ( $ 1\le n\le 500000 $ ) — length of permutation. The second line contains $ n $ space-separated integers $ a_{1},a_{2},...,a_{n} $ ( $ 1\le a_{i}\le n $ or $ a_{i}=-1 $ ) — the code of Mike's permutation. You may assume that all positive values from $ A $ are different.

Output Format

In first and only line print $ n $ numbers $ p_{1},p_{2},...,p_{n} $ ( $ 1\le p_{i}\le n $ ) — a permutation $ P $ which has the same code as the given one. Note that numbers in permutation are distinct.

Explanation/Hint

For the permutation from the first example: $ i=1 $ , the smallest $ j $ is $ 2 $ because $ p_{2}=6>p_{1}=2 $ . $ i=2 $ , there is no $ j $ because $ p_{2}=6 $ is the greatest element in the permutation. $ i=3 $ , the smallest $ j $ is $ 1 $ because $ p_{1}=2>p_{3}=1 $ . $ i=4 $ , the smallest $ j $ is $ 5 $ ( $ 2 $ was already marked) because $ p_{5}=5>p_{4}=4 $ . $ i=5 $ , there is no $ j $ because $ 2 $ is already marked. $ i=6 $ , the smallest $ j $ is $ 4 $ because $ p_{4}=4>p_{6}=3 $ .