Problem:
Score : 300 points

Problem Statement

Takahashi is a teacher responsible for a class of N students.

The students are given distinct student numbers from 1 to N.

Today, all the students entered the classroom at different times.

According to Takahashi's record, there were A_i students in the classroom when student number i entered the classroom (including student number i).

From these records, reconstruct the order in which the students entered the classroom.

Constraints

1 \le N \le 10^5

1 \le A_i \le N

A_i \neq A_j (i \neq j)

All values in input are integers.

Input

Input is given from Standard Input in the following format:

N
A_1 A_2 \ldots A_N

Output

Print the student numbers of the students in the order the students entered the classroom.

Sample Input 1

3
2 3 1

Sample Output 1

3 1 2

First, student number 3 entered the classroom.

Then, student number 1 entered the classroom.

Finally, student number 2 entered the classroom.

Sample Input 2

5
1 2 3 4 5

Sample Output 2

1 2 3 4 5

Sample Input 3

8
8 2 7 3 4 5 6 1

Sample Output 3

8 2 4 5 6 7 3 1

Solution in C# (Mono 4.6.2.0) (judge verdict: Accepted)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class Program
{
    static void Main(string[] args)
    {
            // 入力
            string[] sS = System.Console.ReadLine().Trim().Split(' ');
            int iN = int.Parse(sS[0]);
            sS = System.Console.ReadLine().Trim().Split(' ');

            System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
            sw.Start();

            // 解析
            List<ClsUnk> lstUnk = new List<ClsUnk>();
            for (int i = 0; i < sS.Length; i++)
            {
                ClsUnk oneUsr = new ClsUnk();
                oneUsr.iI = i + 1;
                oneUsr.iN = int.Parse(sS[i]);
                lstUnk.Add(oneUsr);
            }
            lstUnk.Sort(delegate (ClsUnk mca1, ClsUnk mca2) { return mca1.iN - mca2.iN; });     // 昇順

            // 出力
            StringBuilder sbOut = new StringBuilder();
            for (int i = 0; i < lstUnk.Count; i++)
            {
                sbOut.Append(lstUnk[i].iI.ToString() + " ");
            }
            System.Console.WriteLine("{0}", sbOut.ToString().Trim());

            sw.Stop();
#if DEBUG
            Console.WriteLine();
            Console.WriteLine("{0}", sw.Elapsed.ToString());
            Console.WriteLine("続行するには何かキーを押してください．．．");
            Console.ReadKey();
#endif
    }

        // 情報
        private class ClsUnk
        {
            public int iI { get; set; } = 0;
            public int iN { get; set; } = 0;
        }

}