Python の input 関数の返り値は str 型であることに注意してください。

  • 一行目の入力を二つの整数として受け取るには map(int,input().split())
  • 二行目以降の入力を整数型の要素を持つリストとして受け取るには list(map(int,input().split()))

を使用することができます。

この問題の肝は、商品番号と代金の関係をどのように管理するか、ということです。
一つ目に、リストのインデックス番号を商品番号として、要素を代金として管理する方法が考えられますが、この問題では適していません。何故なら、商品番号は最大で 10910^9 であり、要素数が 10910^9 のリストを初期化すると、時間計算量・空間計算量共にとても大きくなってしまうからです。(簡単に言うと、処理に時間が長くかかり、必要なメモリサイズも巨大になってしまいます。)
そこで、制約の NN の値に注目すると、 2N1002 \leq N \leq 100 となっており、扱っている商品の種類は高々 100100 種類しか無いことが分かります。そこで、 dict 型の出番です。 list 型では、インデックスは 00 から順に並べる必要があるのに対し、 dict 型では必要な分だけの key , value の組を管理することができます。
よって、商品番号を key , それに対応する代金を value として dict で管理すればこの問題を解くことができます。また、クエリの処理に関しては、問題に書かれている通りの処理を行えば良いです。

以下は Python の実装例です。