jiahuimbzuai/CoQuIR huggingface dataset:
//  [java]
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.NoSuchElementException;

public class Main {
	public static void main(String[] args) {
		FastScanner sc = new FastScanner();
		int r = sc.nextInt();
		int ans = r * r;
		System.out.println(ans);
	}



	public static long gcd(long a, long b) {
		long remainder = a % b;
		if (remainder == 0) {
			return b;
		} else {
			return gcd(b, remainder);
		}
	}
}

class FastScanner {
    private final InputStream in = System.in;
    private final byte[] buffer = new byte[1024];
    private int ptr = 0;
    private int buflen = 0;
    private boolean hasNextByte() {
        if (ptr < buflen) {
            return true;
        } else {
            ptr = 0;
            try {
                buflen = in.read(buffer);
            } catch (IOException e) {
                e.printStackTrace();
            }
            if (buflen <= 0) {
                return false;
            }
        }
        return true;
    }

    private int readByte() {
        if (hasNextByte())
            return buffer[ptr++];
        else
            return -1;
    }

    private static boolean isPrintableChar(int c) {
        return 33 <= c && c <= 126;
    }

    public boolean hasNext() {
        while (hasNextByte() && !isPrintableChar(buffer[ptr]))
            ptr++;
        return hasNextByte();
    }

    public String next() {
        if (!hasNext())
            throw new NoSuchElementException();
        StringBuilder sb = new StringBuilder();
        int b = readByte();
        while (isPrintableChar(b)) {
            sb.appendCodePoint(b);
            b = readByte();
        }
        return sb.toString();
    }

    public long nextLong() {
        if (!hasNext())
            throw new NoSuchElementException();
        long n = 0;
        boolean minus = false;
        int b = readByte();
        if (b == '-') {
            minus = true;
            b = readByte();
        }
        if (b < '0' || '9' < b) {
            throw new NumberFormatException();
        }
        while (true) {
            if ('0' <= b && b <= '9') {
                n *= 10;
                n += b - '0';
            } else if (b == -1 || !isPrintableChar(b)) {
                return minus ? -n : n;
            } else {
                throw new NumberFormatException();
            }
            b = readByte();
        }
    }

    public int nextInt() {
        long nl = nextLong();
        if (nl < Integer.MIN_VALUE || nl > Integer.MAX_VALUE)
            throw new NumberFormatException();
        return (int) nl;
    }

    public double nextDouble() {
        return Double.parseDouble(next());
    }
}
//  [java]
int main(int r){
	int value = r*r;
	return value;
}
//  [java]
#include <iostream>
using namespace std;

int main() {
    int r;
    cin >> r;
    cout << r * r << endl;
    return 0;
}
//  [java]
class Main{
  public static void main(String[] args){
    

Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
 System.out.println(a*a);   
  }
}
//  [cpp]
#include<stdio.h>

int main()
{
  int r;
  scanf("%d",&r);
  
  r=r*r;
  
  printf("%d\n",r);
  
  return 0;
}
//  [cpp]
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

#define sz(x) ((int)(x).size())
#define in(x) int x;cin>>x
#define in2(x, y) int x,y;cin>>x>>y
#define bit(n) (1<<(n))

#define out(x) cout<<(x)<<endl;
#define err(x) cerr<<(x)<<endl;
#define errr(x,y) cerr<<(x)<<" "<<(y)<<endl;

#define rep(i,n) for (int i=0;i<(n);i++)
#define repp(i,n) for (int i=1;i<=(n);i++)

#define lim5 100002
#define lim9 1000000002

#define deg(rad) (((rad)/2/M_PI)*360)

int main() {
	in(r);

	cout << r * r << endl;

	return 0;
}
//  [cpp]
#include <bits/stdc++.h>
using namespace std;

int main() {
	int r;
	cin >> r;
	cout << r*r;
	return 0;
}
//  [cpp]
#include <bits/stdc++.h>
using namespace std;
// #include <atcoder/all>
// using namespace atcoder;

typedef long long ll;
typedef pair<ll,ll> P;
typedef pair<P,ll> PLL;
typedef pair<P,P> PP;
typedef vector<ll> llVEC;
typedef vector<P> PVEC;
typedef priority_queue<P,PVEC,greater<P> > PPQ;
typedef priority_queue<ll, llVEC, greater<ll> > llPQ;

#define rep(i,a,n) for(ll i = a;i < n;i++)
#define rrep(i,a,n) for(ll i = n-1; i >= a;i--)
#define LINF (ll)1e18
#define INF (int)1e9
#define fs first
#define sc second

template<typename T>
ll sz(vector<T> &vec){ return (ll)vec.size(); }
template<typename T>
ll sz(priority_queue<T, vector<T>> &pq) {return (ll)pq.size(); }
template<typename T>
ll sz(priority_queue<T, vector<T>, greater<T>> &pq) {return (ll)pq.size(); }
ll sz(string &s) {return (ll)s.size(); } 
ll gcd(ll a,ll b){ return ((!b) ?a :gcd(b, a%b)); }
ll lcm(ll a,ll b){ return a / gcd(a,b) * b; }
bool checkindex(ll i,ll n){ return (i < n && i >= 0); }



int main(){
    ll n,t;
    cin >> n >> t;
    ll a[n],b[n];
    rep(i,0,n) cin >> a[i] >> b[i];
    ll dp[2][n+1][t];
    rep(i,0,2) rep(j,0,n+1) rep(k,0,t) dp[i][j][k] = 0;

    rep(i,0,n){
        rep(j,0,t){
            // 0 -> 0
            dp[0][i+1][j] = max(dp[0][i+1][j],dp[0][i][j]);
            if(j+a[i] < t) dp[0][i+1][j+a[i]] = max(dp[0][i+1][j+a[i]],dp[0][i][j]+b[i]); 

            // 1 -> 1
            dp[1][i+1][j] = max(dp[1][i+1][j],dp[1][i][j]);
            if(j+a[i] < t) dp[1][i+1][j+a[i]] = max(dp[1][i+1][j+a[i]],dp[1][i][j]+b[i]); 

            // 0 -> 1
            dp[1][i+1][j] = max(dp[1][i+1][j],dp[0][i][j]+b[i]);
        }
    }

    ll ans = 0;
    rep(i,0,t){
        ans = max(ans,dp[1][n][i]);
    }
    cout << ans << endl;
    
    return 0;
}
//  [cpp]
#include <bits/stdc++.h>
using namespace std;

int main() {
  int r;
  cin<< r;
  cout << r*r << endl;
}
//  [cpp]
#include <bits/stdc++.h>
using namespace std;

int main() {
  cin<< r;
  cout << r*r << endl;
}
//  [c]

#include<stdio.h>
//UG02-47-18-020

int main()
{
    int n;


    scanf("%d",&n);

    printf("%d\n",n*n);



    return 0;

}
//  [c]
#include<stdio.h>
int main(void){
  int a;
  scanf("%d",&a);
  printf("%d",a*a);
  return 0;
}
//  [c]
#include <stdio.h>
#include <unistd.h>
#include <math.h>
#include <stdlib.h>
int main(void){
int a;
int b;
scanf("%d",&a);
b = a*a;
printf("%d",b);
return 0;
}
//  [c]
#include<stdio.h>

int main(void) {
	int r;
	float cir, cir_;


	scanf_s("%d", &r);

	printf("%d", r*r);

	return 0;


}
//  [c]

#include<stdio.h>

int main(void) {
	int r;
	float cir, cir_;


	scanf("%d", &r);

	cir = r * r * 3.14;
	cir_ = 3.14;

	int  res = cir / cir_;

	printf("%d", res);

	return 0;


}
//  [c]

#include<stdio.h>
int main(void) {
	int r;
	float cir, cir_;


	scanf("%d", &r);

	cir = r * r * 3.14;
	cir_ = 3.14;

	int  res = cir / cir_;

	printf("%d", res);

	return 0;


}
//  [javascript]
// parameter "input" gets all data
function Main(input) {
	// the first line is assigned to input[0], the second line is assigned to input[1] similarly.
	input = input.split("\n");
	var a = parseInt(input[0], 10);
	//output
	console.log('%d',a*a);
}
// Don't edit this line!
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
//  [javascript]
function Main(input) {
  	var times = parseInt(input, 10) * parseInt(input, 10);
  	console.log('%d', times);
}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
//  [javascript]
// inputに入力データ全体が入る
function Main(input) {
	input = input.split("\n");
	var r = parseInt( input,10 );

	console.log('%d', r*r);
}
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
//  [javascript]
let a = r;
return a*a;
//  [javascript]
'use strict'
 
function main(s) {

  const n = Number(s[0]);
  const circle = n * n;
  console.log(circle);
}
 
main(require("fs").readFileSync("/dev/stdin", "utf8"));
//  [javascript]
function Main(input) {

	console.log(x * x);
}

Main(require("fs").readFileSync("/dev/stdin", "utf8"));
//  [go]
package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
)

func solve() {
	r := getInt()

	ans := pow(r, 2)
	fmt.Fprintln(wr, ans)
}

func pow(a, b int) int {
	ret := 1
	for i := 0; i < b; i++ {
		ret *= a
	}
	return ret
}

// -----------------------------------------

const (
	inf = 1 << 60
	// mod = 1000000007
)

var (
	sc = bufio.NewScanner(os.Stdin)
	wr = bufio.NewWriter(os.Stdout)
)

func main() {
	maxBufSize := int(1e8)
	sc.Buffer(make([]byte, 4096), maxBufSize)
	sc.Split(bufio.ScanWords)
	solve()
	wr.Flush()
}

func getInt() (ret int) {
	sc.Scan()
	ret, err := strconv.Atoi(sc.Text())
	if err != nil {
		panic(err)
	}
	return
}

func getIntSlice(n int) (ret []int) {
	ret = make([]int, n)
	for i := range ret {
		ret[i] = getInt()
	}
	return
}

func getString() (ret string) {
	sc.Scan()
	ret = sc.Text()
	return
}

func getRunes() (ret []rune) {
	ret = []rune(getString())
	return
}
//  [go]
package main

import (
	"bufio"
	"fmt"
	"os"
	"sort"
	"strconv"
)

func out(x ...interface{}) {
	fmt.Println(x...)
}

var sc = bufio.NewScanner(os.Stdin)

func getInt() int {
	sc.Scan()
	i, e := strconv.Atoi(sc.Text())
	if e != nil {
		panic(e)
	}
	return i
}

func getString() string {
	sc.Scan()
	return sc.Text()
}

// min, max, asub, absなど基本関数
func max(a, b int) int {
	if a > b {
		return a
	}
	return b
}

func min(a, b int) int {
	if a < b {
		return a
	}
	return b
}

func asub(a, b int) int {
	if a > b {
		return a - b
	}
	return b - a
}

func abs(a int) int {
	if a >= 0 {
		return a
	}
	return -a
}

func lowerBound(a []int, x int) int {
	idx := sort.Search(len(a), func(i int) bool {
		return a[i] >= x
	})
	return idx
}

func upperBound(a []int, x int) int {
	idx := sort.Search(len(a), func(i int) bool {
		return a[i] > x
	})
	return idx
}

func main() {
	sc.Split(bufio.ScanWords)

	r := getInt()

	out(r * r)
}
//  [go]
package main

import "fmt"

func main() {
	var r int
	fmt.Scan(&r)
	fmt.Println(r * r)
}
//  [go]
package main

import "fmt"

func main()  {
	var r int
	fmt.Scan(&r)
	fmt.println(r * r)
}
//  [go]
package main

import "fmt"

func main()  {
	var r int
	fmt.Scan(&r)
	println(r * r)
}
//  [go]
package main

import (
	"fmt"
	"math"
)

func main() {
	var r float64

	fmt.Scanf("%g", &r)

	c := r * r * math.Pi
	d := 1 * 1 * math.Pi
	fmt.Println(c / d)
}
//  [ruby]
r = gets.chomp.to_i

puts r*r
//  [ruby]
puts (gets.to_i) ** 2
//  [ruby]
# frozen_string_literal: true

r = gets.to_i
puts r*r
//  [ruby]
puts gets.to_i **2
//  [ruby]
r = gets.to_i

puts r^2
//  [ruby]
def circle(r)
  put r ** 2
end
circle(r)
//  [rust]
use std::io::*;
use std::str::FromStr;

fn read<T: FromStr>() -> Option<T> {
    let stdin = stdin();
    let s = stdin
        .bytes()
        .map(|c| c.unwrap() as char)
        .skip_while(|c| c.is_whitespace())
        .take_while(|c| !c.is_whitespace())
        .collect::<String>();
    s.parse::<T>().ok()
}

fn main() {
    let r: usize = read().unwrap();
    println!("{}", r * r);
}
//  [rust]
use std::io;

fn main() {
	let mut buf = String::new();
	io::stdin().read_line(&mut buf).expect("");
	let r: i32 = match buf.trim().to_string().parse() {
		Ok(n) => n,
		_ => panic!(""),
	};
	println!("{}", r*r);
}
//  [rust]
/* {{{ */
macro_rules! input {
    (source = $s:expr, $($r:tt)*) => {
        let mut iter = $s.split_whitespace();
        input_inner!{iter, $($r)*}
    };
    ($($r:tt)*) => {
        let s = {
            use std::io::Read;
            let mut s = String::new();
            std::io::stdin().read_to_string(&mut s).unwrap();
            s
        };
        let mut iter = s.split_whitespace();
        input_inner!{iter, $($r)*}
    };
}

macro_rules! input_inner {
    ($iter:expr) => {};
    ($iter:expr, ) => {};
    ($iter:expr, $var:ident : $t:tt $($r:tt)*) => {
        let $var = read_value!($iter, $t);
        input_inner!{$iter $($r)*}
    };
}

macro_rules! read_value {
    ($iter:expr, ( $($t:tt),* )) => {
        ( $(read_value!($iter, $t)),* )
    };
    ($iter:expr, [ $t:tt ; $len:expr ]) => {
        (0..$len).map(|_| read_value!($iter, $t)).collect::<Vec<_>>()
    };
    ($iter:expr, chars) => {
        read_value!($iter, String).chars().collect::<Vec<char>>()
    };
    ($iter:expr, usize1) => {
        read_value!($iter, usize) - 1
    };
    ($iter:expr, $t:ty) => {
        $iter.next().unwrap().parse::<$t>().expect("Parse error")
    };
}
/* }}} */

fn main() {
    input! {
        n: u32
    }
    println!("{}", n.pow(2));
}
/* vim:set foldmethod=marker: */
//  [rust]
(* Vicfred
 * https://atcoder.jp/contests/abc145/tasks/abc145_a
 * math
 * *)
let main =
    Scanf.scanf "%d" @@ fun r -> r*r |> Printf.printf "%d\n"
//  [rust]
use std::io::Read;

fn main() {
    let mut buf = String::new();
    std::io::stdin().read_to_string(&mut buf).unwrap();
    let n: usize = iter.next().unwrap().parse().unwrap();
    println!("{}", n * n);
}
//  [rust]
use proconio::input;

fn main() {
    input! {
        r: usize,
    }
    println!("{}", r*r);
}
//  [swift]
let r = Int(readLine()!)!
print(r*r)
//  [swift]
func readInts() -> [Int] {
    return readLine()!.split(separator: " ").map { Int($0)! }
}
 
let num=readInts()
let a=num[0]
print(a*a)
//  [swift]
import Foundation

var r = 0

repeat{
    r = Int(readLine()!)!
}while(r < 0 && 100 < r)

print(r*r)
//  [swift]
let r: Int = 100
print("%d", r * r)
//  [swift]
print(Int(readLine()!)!<<1)
//  [typescript]
export class Main {
  main(input: string): string {
    return (parseInt(input) * parseInt(input)).toString()
  }
}

console.log(new Main().main(require("fs").readFileSync("/dev/stdin", "utf8")));
//  [typescript]
import * as fs from "fs"

const r = parseInt(fs.readFileSync('/dev/stdin', 'utf-8'))

console.log(r * r/1)
//  [typescript]
import * as fs from 'fs';

const main = (inp: string) => {
    // 1*1
    const r: number = parseInt(inp, 10);
    console.log(r * r);
};

main(fs.readFileSync('/dev/stdin', 'utf8').trim());
//  [typescript]
return r*r/1
//  [typescript]
let r: number;
let circle: number = r * r;
if (r == 0){
  return circle;
}else{
  return 0;
}
//  [typescript]
import * as fs from 'fs';

const main = (inp: string) => {
    // 1*1
    const r: number = parseInt(inp, 10);

    if (r === 1) {
        console.log(1);
    } else {
        console.log(r * 2);
    }
};

main(fs.readFileSync('/dev/stdin', 'utf8').trim());
//  [python]
# ABC142C - Go to School
def main():
    N, *A = map(int, open(0).read().split())
    ans = [0] * (N + 1)
    for i, j in enumerate(A, 1):
        ans[j] = i
    print(" ".join(map(str, ans[1:])))


if __name__ == "__main__":
    main()
//  [python]
def main():
  import sys
  n=int(input())
  a=tuple(map(int,sys.stdin.readline().split()))
  b=[None]*n
  i=1
  for index in a:
    b[index-1]=i
    i+=1
  print(" ".join(map(str,b)))
if __name__=="__main__":
  main()
//  [python]
def main():
  import sys
  
  n=int(input())
  a=tuple(map(int,sys.stdin.readline().split()))
  b=[None]*n
  
  for number,index in enumerate(a,1):
    b[index-1]=number
  
  print(" ".join(map(str,b)))
  
if __name__=="__main__":
  main()
//  [python]
n = int(input())
a = list(map(int,input().split()))
b = []
for i in range(1, n+1):
  b.append(a.index(i) + 1)
print(*b)
//  [python]
N = int(input())
A = list(map(int,input().split()))

for n in range(N):
  print(A.index(n+1)+1,end=" ")
//  [python]
n = int(input())
a = list(map(int, input().split()))
ans = []
for i in range(1, n+1):
    for j in range(n):
        if a[j] == i:
            ans.append(str(j+1))
print(" ".join(ans))
//  [java]
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        try (Scanner in = new Scanner(System.in)) {
            int N = in.nextInt();
            int[] A = new int[N];
            for (int i = 0; i < N; i++) {
                A[i] = in.nextInt() - 1;
            }

            int[] inverse = new int[N];
            for (int i = 0; i < inverse.length; i++) {
                inverse[A[i]] = i;
            }

            for (int i = 0; i < inverse.length; i++) {
                if (i > 0) {
                    System.out.print(" ");
                }
                System.out.print(inverse[i]);
            }
            System.out.println();
        }
    }
}
//  [java]
import java.util.*;
public class main {
	public static void main(String[] args){
		Scanner sc=new Scanner(System.in);
		int n = sc.nextInt();
		int[] x=new int[n];
		int[] y=new int[n+1];
		for(int i=0;i<n;i++){
			x[i] = sc.nextInt();
			y[x[i]] = i+1;
		}
		for(int i=1;i<=n;i++)
			System.out.print(y[i]+" ");
	}
}
//  [java]
import java.util.*;
public class Main {
	public static void main(String[] args){
		Scanner sc=new Scanner(System.in);
		int n = sc.nextInt();
		int[] x=new int[n];
		for(int i=0;i<n;i++)
			x[i] = sc.nextInt();
		int t = 1;
		for(int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				if(x[j]==t){
					System.out.print((j+1)+" ");
					t++;
					break;
				}
			}
		}
	}
}
//  [cpp]
//#include<bits/stdc++.h>
#include<cstdio>

using namespace std;
typedef long long ll;
#define rep(i, n) for(int i = 0; i < (n); i++)
#define rep1(i, n) for(int i = 1; i <= (n); i++)
#define co(x) cout << (x) << "\n"
#define cosp(x) cout << (x) << " "
#define ce(x) cerr << (x) << "\n"
#define cesp(x) cerr << (x) << " "
#define pb push_back
#define mp make_pair
#define Would
#define you
#define please

const int cm = 1 << 17;
char cn[cm], * ci = cn + cm;
inline char getcha() {
	if (ci - cn == cm) { fread(cn, 1, cm, stdin); ci = cn; }
	return *ci++;
}
inline int getint() {
	char C = getcha();
	int A = C - '0';
	while ((C = getcha()) >= '0') A = A * 10 + C - '0';
	return A;
}

const int dm = 1 << 20;
char dn[dm], * di = dn;
inline void putint(ll X) {
	int keta = 0;
	char C[20];
	while (X) {
		*(C + keta) = '0' + X % 10;
		X /= 10;
		keta++;
	}
	for (int i = keta - 1; i >= 0; i--)* di++ = (*(C + i));
	*di++ = ' ';
}

int main() {
	//cin.tie(0);
	//ios::sync_with_stdio(false);


	int N = getint();
	int A[100001];
	rep1(i, N) A[getint()] = i;
	rep1(i, N) putint(A[i]);

	fwrite(dn, 1, di - dn, stdout);

	Would you please return 0;
}
//  [cpp]
#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
inline void rd(int &x){
  int k;
  int m=0;
  x=0;
  for(;;){
    k = getchar_unlocked();
    if(k=='-'){
      m=1;
      break;
    }
    if('0'<=k&&k<='9'){
      x=k-'0';
      break;
    }
  }
  for(;;){
    k = getchar_unlocked();
    if(k<'0'||k>'9'){
      break;
    }
    x=x*10+k-'0';
  }
  if(m){
    x=-x;
  }
}
inline void wt_L(char a){
  putchar_unlocked(a);
}
inline void wt_L(int x){
  int s=0;
  int m=0;
  char f[10];
  if(x<0){
    m=1;
    x=-x;
  }
  while(x){
    f[s++]=x%10;
    x/=10;
  }
  if(!s){
    f[s++]=0;
  }
  if(m){
    putchar_unlocked('-');
  }
  while(s--){
    putchar_unlocked(f[s]+'0');
  }
}
int N;
int A[100000];
int res[100000];
int main(){
  int i;
  rd(N);
  {
    int Lj4PdHRW;
    for(Lj4PdHRW=(0);Lj4PdHRW<(N);Lj4PdHRW++){
      rd(A[Lj4PdHRW]);A[Lj4PdHRW] += (-1);
    }
  }
  for(i=(0);i<(N);i++){
    res[A[i]] = i+1;
  }
  {
    int KL2GvlyY;
    if(N==0){
      putchar_unlocked('\n');
    }
    else{
      for(KL2GvlyY=(0);KL2GvlyY<(N-1);KL2GvlyY++){
        wt_L(res[KL2GvlyY]);
        wt_L(' ');
      }
      wt_L(res[KL2GvlyY]);
      wt_L('\n');
    }
  }
  return 0;
}
// cLay varsion 20190929-1

// --- original code ---
// int N, A[1d5], res[1d5];
// {
//   rd(N,(A--)(N));
//   rep(i,N) res[A[i]] = i+1;
//   wt(res(N));
// }
//  [cpp]
#include <bits/stdc++.h>

using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n;
    cin >> n;
    vector<int> timing(n), order(n);
    for(int i = 0; i < n; i++)
        cin >> timing[i];
    for(int i = 0; i < n; i++)
        order[timing[i] - 1] = i + 1;  
    for(int i = 0; i < n; i++)
        cout << order[i];
    return 0;
}
//  [cpp]
#include <bits/stdc++.h>

using namespace std;
#define NIL -1
#define ll long long
#define MAX 100
#define pb push_back

int main() {
	int n;
	cin >> n;
	double arr[n];
	for(int i=0; i<n; i++) {
		cin >> arr[i];
	}
	sort(arr, arr+n);
	double ans = 0;
	for(int i=0; i<n-1; i++) {
		ans = ((arr[i]+arr[i+1])/2.0);
		arr[i+1] = ans;
	}
	cout << setprecision(10) << arr[n-1] << endl;
    return 0;
}
//  [cpp]
#include <bits/stdc++.h>
#define ll long long
using namespace std;

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	int n;
	int a[n], ans[n];
	cin >> n;
	for(int i=0;i<n;i++)
		cin >> a[i];
	for(int i=0;i<n;i++)
		ans[a[i]-1]=i+1;
	for(int i=0;i<n;i++)
		cout << ans[i] << " " << endl;
	return 0;
}
//  [c]
int main(){
  int n;
  scanf("%d",&n);
  int a[100001],b[100001];
  for(int i=0;i<n;i++){
    scanf("%d",&a[i]);
    b[a[i]-1]=i+1;
  }
  for(int i=0;i<n;i++){
    printf("%d\n",b[i]);
  }
}
//  [c]
int main(void){
  int n,a[100000],b[100000]={};
  
  scanf("%d",&n);
  
  for(int i = 0; i < n; i++){
    scanf("%d",&a[i]);
    b[a[i]-1] = i+1;
  }
   
  for(int i = 0; i < n; i++)
    printf("%d ",b[i]);
  
  return 0;
}
//  [c]
// AtCoder165 C

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <assert.h>
#include <string.h>
#include <memory.h>
#include <malloc.h>
#include <stdlib.h>

// qsortで用いる比較用関数．*a<*bならaが先になる．
int compare(const void* a, const void* b) {
    return *(int*)a - *(int*)b;
}

int revcompare(const void* a, const void* b) {
    return *(int*)b- *(int*)a;
}


int main() {
    int i,j;
    int n;
    int a;
    int* order;

    scanf("%d", &n);
    order = (int*)malloc(sizeof(int) * n);

    for(i=0;i<n;i++){
        scanf("%d", &a);
        order[a-1] = i+1;
    }

    for(i=0;i<n;i++){
        printf("%d ", order[i]);
    }

    return 0;
}
//  [c]
#include <stdio.h>

int main(void){
  int n;
  int a[100005];
  
  scanf("%d", &n);
  int i=0;
  for(i=0;i<n;i++){
    scanf("%d", &a[i]);
  }
  /*
  while(a != '\0'){
    scanf("%d", &a[i]);
  }
  */
  
  int temp = 0;
  int j=0;

  for(i=0;i<n;i++){
      for(j=0;j<n; j++){
    	if(a[j]==i+1){
      		printf("%d ", j+1);
    	}
      }
  }
    
    return 0;
  }
//  [c]
#include <stdio.h>
#include <stdlib.h>

int main ()
{
  int n,i,j;
  int *a;

  scanf("%d",&n );
  a = calloc(n,sizeof(int));

  for(i=0; i<n; i++)
    scanf("%d", &a[i]);

  for(i=1; i<=n; i++){
    for(j=0; j<n; j++){
      if(a[j] == i)
        printf("%d ",j+1 );
    }
  }

  free(a);
  return 0;
}
//  [c]
#include<stdio.h>
int main()
{
	int n,d,e,i,j,a[100000],b[100000],c[100000];
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d",&a[i]);
		b[i]=a[i];
	}
	for(i=0;i<n-1;i++){
		for(j=i+1;j<n;j++){
			if(a[i]>=a[j]){
				d=a[i];
				a[i]=a[j];
				a[j]=d;
			}
		}
	}
	e=0;
	for(i=0;i<n;i++){
		for(j=0;j<n;j++){
			if(a[i]==b[j]){
				e++;
				c[i]=e;
			}
			else e++;
		}
		e=0;
	}
	for(i=0;i<n;i++){
		printf("%d ",c[i]);
	}
	return 0;
}
//  [javascript]
const main = input =>{
    const IN = input.split("\n");
    const N = parseInt(IN[0]);
    const A = IN[1].split(" ");


    var array1 = new Array(N);

    for(var i=0; i<N; i++){

        array1[A[i]- 1] = i + 1;
    }
   // console.log(array1);
  console.log(array1.join(' '));
}
main(require('fs').readFileSync('/dev/stdin', 'utf8'));
//  [javascript]
"use strict";

main(require("fs").readFileSync("/dev/stdin", "UTF-8"));

function main(input) {
  let students_num = parseInt(input.split("\n")[0]); //生徒数
  let arrive_num_order_by_student_num = input.split("\n")[1].split(" "); //学番の順の到着順(配列)

  let result = new Array(students_num); //出力

  for (let i = 0; i < students_num; i++) {
    result[parseInt(arrive_num_order_by_student_num[i]) - 1] = i + 1;
  }

  console.log(result.join(" "));
}
//  [javascript]
process.stdin.resume();
process.stdin.setEncoding('utf8');

var lines = []
var reader = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});

reader.on('line', (line) => {
  lines.push(line);
});

reader.on('close', () => {
 var n = Number(lines[0]);
 var a = lines[1].split(' ');
 var ans = new Array(n);
 for(i=1; i<=n; i++){
   ans[a[i-1]-1] = i;
   // console.log(index);
 }
 console.log(ans.join(' '));
});
//  [javascript]
process.stdin.resume();
process.stdin.setEncoding('utf8');

var lines = []
var reader = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});

reader.on('line', (line) => {
  lines.push(line);
});

reader.on('close', () => {
 var n = Number(lines[0]);
 var a = lines[1].split(' ');
 var ans = new Araay(n);
 for(i=1; i<=n; i++){
   ans[a[i-1]-1] = i;
   // console.log(index);
 }
 console.log(ans.join(' '));
});
//  [javascript]
process.stdin.resume();
process.stdin.setEncoding('utf8');

var lines = []
var reader = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});

reader.on('line', (line) => {
  lines.push(line);
});

reader.on('close', () => {
 var n = Number(lines[0]);
 var a = lines[1].split(' ');
 var ans = [];
 for(i=1; i<=n; i++){
   var index = a.indexOf(String(i));
   // console.log(index);
   ans.push(index+1);
 }
 console.log(ans.join(' '));
});
//  [javascript]
'use strict';
function main(input) {
  const args = input.split('\n'),
        N = parseInt(args[0]),
        A = args[1].split(' ');
  let order = [];
  for (let i = 1; i <= N; ++i) {
    order.push(A.indexOf(i.toString())+1);
  }
  let answer = '';
  for (let i = 0; i < N; ++i) {
    if (i < N-1) {
      answer += order[i] + ' ';
    } else {
      answer += order[i];
    }
  }
  console.log(answer);
}

main(require('fs').readFileSync('/dev/stdin', 'utf8'));
//  [go]
package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

func main() {
	sc := bufio.NewScanner(os.Stdin)
	sc.Split(bufio.ScanWords)
	sc.Scan()
	n, _ := strconv.Atoi(sc.Text())
	slice := make([]string, n)
	for i := 1; i <= n; i++ {
		sc.Scan()
		a, _ := strconv.Atoi(sc.Text())
		b := strconv.Itoa(i)
		slice[a-1] = b
	}
	fmt.Print(strings.Join(slice, " "))
	fmt.Println("")
}
//  [go]
package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

func main() {
	sc := bufio.NewScanner(os.Stdin)
	sc.Split(bufio.ScanWords)
	sc.Scan()
	n := mustAtoi(sc.Text())
	answer := make([]string, n)
	for i := 0; i < n; i++ {
		sc.Scan()
		answer[mustAtoi(sc.Text())-1] = strconv.Itoa(i + 1)
	}
	fmt.Print(strings.Join(answer, " "))
}

func mustAtoi(s string) int {
	i, err := strconv.Atoi(s)
	if err != nil {
		panic(err)
	}
	return i
}
//  [go]
package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

func main() {
	sc := bufio.NewScanner(os.Stdin)
	sc.Buffer([]byte{}, 100000000)
	sc.Scan()
	_ = sc.Text()
	sc.Scan()
	an := strings.Split(sc.Text(), " ")
	answer := make([]string, len(an))
	for i, a := range an {
		answer[mustAtoi(a)-1] = strconv.Itoa(i + 1)
	}
	fmt.Println(strings.Join(answer, " "))
}

func mustAtoi(s string) int {
	i, err := strconv.Atoi(s)
	if err != nil {
		panic(err)
	}
	return i
}
//  [go]
package main

import (
	"bufio"
	"fmt"
	"math"
	"os"
	"strconv"
	"strings"
)

var sc = bufio.NewScanner(os.Stdin)

func contains(target string, list []string) bool {
	for _, r := range list {
		if target == r {
			return true
		}
	}
	return false
}

func nextLine() string {
	sc.Scan()
	return sc.Text()
}

func nextInt() int {
	sc.Scan()

	i, e := strconv.Atoi(sc.Text())
	if e != nil {
		panic(e)
	}
	return i
}
func nextInt64() int64 {
	sc.Scan()

	i, e := strconv.ParseInt(sc.Text(), 10, 64)
	if e != nil {
		panic(e)
	}
	return i
}

func nextF64() float64 {
	sc.Scan()

	i, e := strconv.ParseFloat(sc.Text(), 64)
	if e != nil {
		panic(e)
	}
	return i
}

func isInteger(x float64) bool {
	return math.Floor(x) == x
}

func Ave(s []int) int {
	val := 0
	for _, i := range s {
		val += i
	}
	return int(val / len(s))
}
func cal(i int) (sum int) {
	for i != 0 {
		sum += i % 10
		i /= 10
	}
	return
}
func max(a []int) (idx int, val int) {
	max := a[0]
	idx = 0
	for j, i := range a {
		if max < i {
			max = i
			idx = j
		}
	}
	return idx, max
}

func draw(i int, a []int) (l []int) {
	// p = a[i]
	for j := i; j < len(a); j++ {
		if j != len(a)-1 {
			a[j] = a[j+1]
		} else if j == len(a)-1 {
			a = a[:len(a)-1]
		}
	}
	return a
}
func abs(i int64) int64 {
	if i < 0 {
		return -i
	}
	return i
}

func main() {
	sc.Split(bufio.ScanWords)
	// sc.Buffer([]byte{}, math.MaxInt64)
	// a := make([][]int, 3)
	// for i := 0; i < 3; i++ {
	// 	a[i] = make([]int, 3)
	// }
	// for i := 0; i < 3; i++ {
	// 	for j := 0; j < 3; j++ {
	// 		a[i][j] = nextInt()
	// 	}
	// }
	n := nextInt()
	// var cnt int
	var a []int
	var out []string

	for i := 0; i < n; i++ {
		a = append(a, nextInt())
	}

	for i := 1; i <= len(a); i++ {
		for idx, val := range a {
			if val == i {
				out = append(out, strconv.Itoa(idx+1))
			}
		}
	}
	fmt.Println(strings.Join(out, " "))

}
//  [go]
package main

import "fmt"

func main() {
	var n int
	fmt.Scan(&n)
	nums := make([]int, n)
	ans := make([]int, n)
	for i, _ := range nums{
		fmt.Scan(&nums[i])
	}

	for i:=1; i<=n; i++{
		for j:=0; j<n; j++{
			if i == nums[j]{
				ans[i-1] = j+1
				break
			}
		}
	}

	for _, v := range ans{
		fmt.Println(v)
	}
}
//  [go]
package main

import "fmt"

func main() {
	var n int
	fmt.Scan(&n)
	nums := make([]int, n)
	ans := make([]int, n)
	for i, _ := range nums{
		fmt.Scan(&nums[i])
	}

	for i:=1; i<=n; i++{
		for j:=0; j<n; j++{
			if i == nums[j]{
				ans[i-1] = j+1
			}
		}
	}

	for _, v := range ans{
		fmt.Println(v)
	}
}
//  [ruby]
N = gets.chomp.to_i
cms = gets.chomp

cms_arr = cms.split
result = []

for i in 0..cms_arr.size - 1
    result[cms_arr[i].to_i - 1] = (i + 1).to_s
end

puts result.join(" ")
//  [ruby]
# 入力を取得
N = gets
A = gets

A_arry = A.split(" ")
result = []


for i in 0..N.to_i-1
    result[A_arry[i].to_i-1] = (i+1).to_s
end

# 結果を出力
print result.join(" ")
//  [ruby]
input_lines = readlines

N = input_lines[0].to_i
A = input_lines[1].split(' ')

cnt = 1
array = [N]

A.each do |num|
  array[num.to_i-1] = cnt
  cnt = cnt +1
end

puts array.join(' ')
//  [ruby]
n=gets.to_i
a=gets.split.map(&:to_i)

b=Array.new(n)
n.times do |i|
    b[i]=a.index(i+1)+1
end
puts b.join(" ")
//  [ruby]
N = gets.to_i
a = gets.split.map &:to_i

str = ""
N.times do |i|
  idx = a.find_index { |n| n == i+1 }
  str << (idx + 1).to_s + " "
end

puts str.strip
//  [ruby]
n=gets.to_i
s=gets.split.map &:to_i
puts s.zip(1..n).map{|x|x[1]}*" "
//  [rust]
use std::fmt::Write;

fn read<T: std::str::FromStr>() -> T {
    let mut s = String::new();
    std::io::stdin().read_line(&mut s).ok();
    s.trim().parse().ok().unwrap()
}

fn read_vec<T: std::str::FromStr>() -> Vec<T> {
    read::<String>()
        .split_whitespace()
        .map(|s| s.parse().ok().unwrap())
        .collect()
}

fn main() {
    let n = read::<usize>();
    let ax = read_vec::<usize>();

    let mut v = vec![0; n];

    for (i, &a) in ax.iter().enumerate() {
        v[a-1] = i + 1;
    }

    let mut ans = String::new();

    write!(ans, "{}", v[0]).unwrap();
    

    for i in v.iter().skip(1) {
        write!(ans, " {}", i).unwrap();
    }

    println!("{}", ans);
}
//  [rust]
macro_rules! input {
    (source = $s:expr, $($r:tt)*) => {
        let mut iter = $s.split_whitespace();
        input_inner!{iter, $($r)*}
    };
    ($($r:tt)*) => {
        let mut s = {
            use std::io::Read;
            let mut s = String::new();
            std::io::stdin().read_to_string(&mut s).unwrap();
            s
        };
        let mut iter = s.split_whitespace();
        input_inner!{iter, $($r)*}
    };
}

macro_rules! input_inner {
    ($iter:expr) => {};
    ($iter:expr, ) => {};

    ($iter:expr, $var:ident : $t:tt $($r:tt)*) => {
        let mut $var = read_value!($iter, $t);
        input_inner!{$iter $($r)*}
    };
}

macro_rules! read_value {
    ($iter:expr, ( $($t:tt),* )) => {
        ( $(read_value!($iter, $t)),* )
    };

    ($iter:expr, [ $t:tt ; $len:expr ]) => {
        (0..$len).map(|_| read_value!($iter, $t)).collect::<Vec<_>>()
    };

    ($iter:expr, chars) => {
        read_value!($iter, String).chars().collect::<Vec<char>>()
    };

    ($iter:expr, usize1) => {
        read_value!($iter, usize) - 1
    };

    ($iter:expr, $t:ty) => {
        $iter.next().unwrap().parse::<$t>().expect("Parse error")
    };
}

use std::io::{stdout, Write, BufWriter};
// use std::cmp::min;

fn main() {
    input!{
        n: usize,
        rec: [i32; n],
    }
    let out = stdout();
    let mut out = BufWriter::new(out.lock());

    let mut ans: Vec<usize> = vec![0; n];
    for (i, &n) in rec.iter().enumerate() {
        ans[(n - 1) as usize] = i + 1;
    }
    for i in ans {
        writeln!(out, "{} ", i).unwrap();
    }
}
//  [rust]
use std::io::*;
use std::str::FromStr;

fn read<T: FromStr>() -> T {
    let stdin = stdin();
    let stdin = stdin.lock();
    let token: String = stdin
        .bytes()
        .map(|c| c.expect("filed to read char") as char)
        .skip_while(|c| c.is_whitespace())
        .take_while(|c| !c.is_whitespace())
        .collect();
    token.parse().ok().expect("failed to parse token")
}

fn main() {
    let n:usize = read();
    let mut ans = vec![0; n];
    for i in 1..=n {
        ans[read::<usize>()-1] = i;
    }
    println!("{}", format!("{:?} ", ans));
}
//  [rust]
use proconio::{fastout, input};

#[fastout]
fn main() {
    input! {n: usize, a: [usize; n]};

    for i in 1..n + 1 {
        let index = a.iter().position(|&r| r == i).unwrap();
        print!("{} ", index + 1);
    }
}
//  [rust]
use proconio::{fastout, input};

#[fastout]
fn main() {
    input! {n: usize, a: [usize; n]};

    for i in 1..n + 1 {
        let index = a.iter().position(|&r| r == i).unwrap();
        print!("{}", index + 1);
    }
}
//  [swift]
// 🐋💭 Walk on Multiplication Table
import Foundation

func readInts() -> [Int] {
    return readLine()!.split(separator: " ").map { Int($0)! }
}

func readInt() -> Int {
    return Int(readLine()!)!
}

///最大公約数を返す
func gcd(_ m:Int, _ n:Int) -> Int {
    if n == 0 {return m}
    return gcd(n, m % n)
}

///素数判定(試し割り)
func isPrime(_ x:Int) -> Bool {
    if x <= 1 || x % 2 == 0 { return false }
    if x == 2 { return true }
    for i in stride(from: 3, to: Int(ceil(sqrt(Double(x)))), by: 2){
        if x % i == 0 {
            return false
        }
    }
    return true
}

//https://program-life.com/669
///実行速度の計測
func exectionTime(action: () -> Void) {
    let startDate = Date()
    action()
    let endDate = Date()
    print(endDate.timeIntervalSince(startDate))
}
// https://melheaven.hatenadiary.jp/entry/atcoder144
///約数の配列を返す
func makeDivisors(_ n:Int) -> [Int] {
    var divisors = [Int]()
    for i in 1..<Int(pow(Double(n), 0.5)) + 1 {
        if n % i == 0{
            divisors.append(i + n / i)
        }
    }
    
    return divisors
}

func main() {
    let n = readInt()
    let aryA = readLine()!.split(separator: " ").map { String($0) }
    var ans = [String](repeating: String(), count: n)
    
    for i in 0..<n {
        let a = aryA[i]
        ans[Int(a)! - 1] = String(i + 1)
    }
    print(ans.joined(separator: " "))
}
main()
//  [swift]
readLine()
var a=readLine()!.characters.split(" ").enumerate().map{($0.0,Int(String($0.1))!)}
a.sort{$0.1<$1.1}.map{print($0.0+1)}
//  [swift]
readLine()
readLine()!.characters.split(" ").enumerate().map{($0.0,Int(String($0.1))!)}.sort{$0.1<$1.1}.map{print($0.0+1)}
//  [swift]
// 🐋💭 Walk on Multiplication Table
import Foundation

func readInts() -> [Int] {
    return readLine()!.split(separator: " ").map { Int($0)! }
}

func readInt() -> Int {
    return Int(readLine()!)!
}

///最大公約数を返す
func gcd(_ m:Int, _ n:Int) -> Int {
    if n == 0 {return m}
    return gcd(n, m % n)
}

///素数判定(試し割り)
func isPrime(_ x:Int) -> Bool {
    if x <= 1 || x % 2 == 0 { return false }
    if x == 2 { return true }
    for i in stride(from: 3, to: Int(ceil(sqrt(Double(x)))), by: 2){
        if x % i == 0 {
            return false
        }
    }
    return true
}

//https://program-life.com/669
///実行速度の計測
func exectionTime(action: () -> Void) {
    let startDate = Date()
    action()
    let endDate = Date()
    print(endDate.timeIntervalSince(startDate))
}
// https://melheaven.hatenadiary.jp/entry/atcoder144
///約数の配列を返す
func makeDivisors(_ n:Int) -> [Int] {
    var divisors = [Int]()
    for i in 1..<Int(pow(Double(n), 0.5)) + 1 {
        if n % i == 0{
            divisors.append(i + n / i)
        }
    }
    
    return divisors
}

func main() {
    let n = readInt()
    let aryA = readLine()!.split(separator: " ").map { String($0) }
    var ans = String()
    
    for i in 1...n {
        let a = aryA.firstIndex(of: String(i))!
        ans +=  "\((Int(a) + 1)) "
    }
    print(ans)
}
main()
//  [swift]
import Foundation

let n = Int(readLine()!)!
let input_num = readLine()!

var aList:[String] = []
aList = input_num.componentsSeparatedByString(" ")

var answer:[Int] = []
var count:Int = 1
for i in 1...n {
	for j in 0..<n {
    	if Int(aList[j]) != i {
        	count += 1
    	} else {
    	answer.append(count)
        count = 1
        break
        }
    }
}

var str:[String] = []

for i in 0..<n {
	str.append(String(answer[i]))
}

print(str.joinWithSeparator(" "))
//  [swift]
import Foundation

let n = Int(readLine()!)!
let input_num = readLine()!

var aList:[String] = []
aList = input_num.componentsSeparatedByString(" ")

print(aList)

var answer:[Int] = []
var count:Int = 1
for i in 1...n {
	for j in 0..<n {
    	if Int(aList[j]) != i {
        	count += 1
    	} else {
    	answer.append(count)
        count = 1
        break
        }
    }
}

print(answer)
//  [typescript]
const input=require('fs').readFileSync('/dev/stdin','utf8').split(/[\s]/);let input_i=-1;const tn=():number=>{input_i++;return Number(input[input_i])};const tnn=(n:number):number[]=>{const a=[];for(let i=0;i<n;i++){a.push(tn())}return a};const ts=():string=>{input_i++;return String(input[input_i])};const tss=(n:number):string[]=>{const a=[];for(let i=0;i<n;i++){a.push(ts())}return a};const to=(...arg)=>{console.log(...arg)};const abs=(a)=>{return Math.abs(a)};const min=(...a)=>{return Math.min(...a)};const max=(...a)=>{return Math.max(...a)};const floor=(a)=>{return Math.floor(a)};const asc=(ar:number[])=>{return ar.sort((a,b)=>{return a-b})};const desc=(ar:number[])=>{return ar.sort((a,b)=>{return b-a})};const sw=(a,arr:any[],op:'=='|'>='|'>'|'<='|'<'='==')=>{for(let i=0;i<arr.length-1;i+=2){if(eval(a+op+arr[i])){return arr[i+1]}}return arr[arr.length-1]};const near=(n:number,arr:number[]):number=>{let ne=arr[0],ni=0;for(let i=1;i<arr.length;i++){if(Math.abs(n-ne)>Math.abs(n-arr[i])){ne=arr[i];ni=i}}return ni};const deduplicate=(a):any[]=>{return Array.from(new Set(a))};
const main=()=>{
  let n=tn()
  let ar=tnn(n)
  let br=new Array(n)
  for(let i=0;i<n;i++){
    br[ar[i]-1]=i+1
  }
  to(br.join(' '))
}
main()
//  [typescript]
import { readFileSync } from 'fs'
function main() {
  const input = readFileSync('/dev/stdin', 'utf8')
  const data = input.split('\n').map(v => v.trim())
  const n = Number(data[0].trim())
  const students = data[1].trim().split(' ').map(v => Number(v))
  const order = new Array(n)
  for (let i = 0; i < n; i++) {
    const position = students[i] - 1
    order[position] = i + 1
  }
  console.log(order.join(' '))
}
main()
//  [typescript]
function main(input) {
    const n: number = parseInt(input.split('\n')[0], 10);
    const r: number[] = new Array(n).fill(0);
    const a: number[] = input.split('\n')[1].split(' ').map((v: string) => parseInt(v));
    a.forEach((e: number, i: number) => {
        r[e-1] = i+1;
    });
    console.log(r.join(' '));
}
main(require('fs').readFileSync('/dev/stdin', 'utf8'));
//  [typescript]
const input=require('fs').readFileSync('/dev/stdin','utf8').split(/[\s]/);let input_i=-1;const tn=():number=>{input_i++;return Number(input[input_i])};const tnn=(n:number):number[]=>{const a=[];for(let i=0;i<n;i++){a.push(tn())}return a};const ts=():string=>{input_i++;return String(input[input_i])};const tss=(n:number):string[]=>{const a=[];for(let i=0;i<n;i++){a.push(ts())}return a};const to=(...arg)=>{console.log(...arg)};const abs=(a)=>{return Math.abs(a)};const min=(...a)=>{return Math.min(...a)};const max=(...a)=>{return Math.max(...a)};const floor=(a)=>{return Math.floor(a)};const asc=(ar:number[])=>{return ar.sort((a,b)=>{return a-b})};const desc=(ar:number[])=>{return ar.sort((a,b)=>{return b-a})};const sw=(a,arr:any[],op:'=='|'>='|'>'|'<='|'<'='==')=>{for(let i=0;i<arr.length-1;i+=2){if(eval(a+op+arr[i])){return arr[i+1]}}return arr[arr.length-1]};const near=(n:number,arr:number[]):number=>{let ne=arr[0],ni=0;for(let i=1;i<arr.length;i++){if(Math.abs(n-ne)>Math.abs(n-arr[i])){ne=arr[i];ni=i}}return ni};const deduplicate=(a):any[]=>{return Array.from(new Set(a))};
const main=()=>{
  let n=tn()
  let ar=tnn(n)
  let br=new Array(n)
  for(let i=0;i<n;i++){
    br[ar[i]-1]=i+1
  }
  to(br.join(''))
}
main()
//  [typescript]
function main(input) {
    const n: number = parseInt(input.split('\n')[0], 10);
    const r: number[] = new Array(n).fill(0);
    const a: number[] = input.split('\n')[1].split(' ').map((v: string) => parseInt(v));
    a.forEach((e: number, i: number) => {
        r[e-1] = i+1;
    });
    console.log(r);
}
main(require('fs').readFileSync('/dev/stdin', 'utf8'));
//  [python]
n = int(input())
a_list = [int(a) for a in input().split(' ')]
bin_or = 0
for a in a_list:
    bin_or |= a
cnt = 0
while bin_or & 1 != 1:
    cnt += 1
    bin_or >>= 1
print(cnt)
//  [python]
N=input()
S=map(int,input().split())
sum=0
for num in S:
  sum=sum|num

for i in range(200):
  if sum>>i&1==1:
    print(i)
    break
//  [python]
n=int(input())
ans=min(map(lambda x:bin(int(x))[::-1].index('1'),input().split()))
print(ans)
//  [python]
n = int(input())
a = list(map(int, input().split()))
cnt = 0

while all(i%2==0 for i in a ):
  A = [i//2 for i in a]
  cnt+=1

print(cnt)
//  [python]
N = int(input())
A = list(map(int, input().split()))

ans = 0
s = sum(A)
while s % 2 == 0:
    s /= 2
    ans += 1
print(ans)
//  [java]
import java.util.*;

public class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
      	int minDivTwo = 1000;
    	for(int i=0; i<n; i++){
          	int v = sc.nextInt();
			int c = 0;
          	while(v > 0 && v%2 == 0)	{
            	v/=2;
	            c++;
	        }
            minDivTwo = min(c, minDivTwo);
        }
        System.out.println(minDivTwo);
    }
}
//  [java]
import java.util.*;

class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        s = s.replaceAll("0", "");
        System.out.println(s.length());
    }
}
//  [java]
import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int count = Integer.parseInt(sc.nextLine());
		int[] num = new int[count];
		int[] max = new int[count];
		int maxOperate = 0;
		System.out.println("count"+ count);
		for(int i = 0 ; i < count ;i++) {
			num[i] = sc.nextInt();
			System.out.println("i:"+i+ ",num" +num[i]);
			max[i] = 0;
			while((num[i]%2)==0) {
				num[i] = num[i]/2;
				max[i] += 1;
			}
			if(i == 0) {
				maxOperate = max[i];
			}else if(maxOperate > max[i]) {
				maxOperate = max[i];
			}
		}
		System.out.println(maxOperate);
	}

}
//  [cpp]
#include <bits/stdc++.h>
using namespace std;
 
int main() {
  int n, x, c, d;
  cin >> n;
  d = 100;
  for (int i = 0; i < n; i++) {
    cin >> x;
    c = 0;
    while (x % 2 == 0){
      x /= 2;
      c++;
    }
    if (d > c){
      d = c;
    }
   }
  cout << d << endl;
}
//  [cpp]
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int n,cnt,ans=1e8;
ll a;
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	for (int i=0;i<n;++i)
	{
		cin>>a;
		cnt=0;
		while (a%2==0) ++cnt,a/=2;
		ans=min(ans,cnt);
	}
	cout<<ans;
	return 0;
}
//  [cpp]
#include<bits/stdc++.h>
#include <algorithm>
#include <cctype>
#include <iostream>
#include <string>
using namespace std;

#define ll long long
#define rep(i,n) for(int (i)=0; (i)<(n); (i)++)

const ll MOD = 1e9+7;

// Combinationの使い方
// vector<vector<ll>> v(N+1, vector<ll>(N+1, 0));
// comb(v);
void comb(vector<vector<ll>> &v){
    for(int i = 0; i < v.size(); i++){
        v[i][0] = 1;
        v[i][i] = 1;
    }
    for(int k = 1; k < v.size(); k++){
        for(int j = 1; j < k; j++){
            v[k][j] = (v[k-1][j-1] + v[k-1][j]);
            //余りを求める問題は毎回計算ごとにやる
            // v[k][j] = (v[k-1][j-1] + v[k-1][j]) % MOD;
        }
    }
}

// Union Find
struct UnionFind {
    vector<int> par; // par[i]:iの親の番号　(例) par[3] = 2 : 3の親が2

    UnionFind(int N) : par(N) { //最初は全てが根であるとして初期化
        for(int i = 0; i < N; i++) par[i] = i;
    }

    int root(int x) { // データxが属する木の根を再帰で得る：root(x) = {xの木の根}
        if (par[x] == x) return x;
        return par[x] = root(par[x]);
    }

    void unite(int x, int y) { // xとyの木を併合
        int rx = root(x); //xの根をrx
        int ry = root(y); //yの根をry
        if (rx == ry) return; //xとyの根が同じ(=同じ木にある)時はそのまま
        par[rx] = ry; //xとyの根が同じでない(=同じ木にない)時：xの根rxをyの根ryにつける
    }

    bool same(int x, int y) { // 2つのデータx, yが属する木が同じならtrueを返す
        int rx = root(x);
        int ry = root(y);
        return rx == ry;
    }
};

// vector<tuple<long,long>> items; // (value, weight)
// auto item = items[i];
// long v = get<0>(item);
// long w = get<1>(item);
// long v, w;
//   for( int i = 0; i < N; i++ ){
//     cin >> v >> w;
//     items.push_back( make_tuple(v, w) ); // item : (value, weight)
//   }

// 1 << 3 : int "3" change to bit "100"
// rep(pattern, 1 << N) if (pattern & (1 << x)) cnt++

int main(){
    int N;
    cin >> N;
    vector<ll> A(201,0);
    rep(i,N) cin >> A[i];

    int cnt = 0;
    bool flag = true;
    while(flag){
        cnt++;
        rep(i,N){
            if(A[i]%2==0) A[i] = A[i]/2;
            else{
                cnt--;
                flag = false;
                break;
            } 
        }
    }
    
    cout << cnt << endl;
   
    return 0;
}
//  [cpp]
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main(){
    int N;
    cin >> N;
    vector<int> A(N);
    int cnt = 0;
    while(1){
        int flag = 0;
        for(int i = 0; i < N; i++){
            if(A[i] % 2 != 0) flag = 1;
            else A[i] /= 2;
        }
        if(flag == 1) break;
        cnt++;
    }
    cout << cnt << endl;
}
//  [cpp]
#include <bits/stdc++.h>


using namespace std;

#define ll long long

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	int N;
	cin >> N;
	vector<int> a(N);
	bool ok=true;
	int ans=1e9;
	//O(N * LOG(MAX(a)))
	for(int& x : a) {
		cin >> x;
		if(x&1) ok=false;
		int cnt=0;
		while(x>2) {
			if(x&1) {
				ans=min(ans,cnt);
				break;
			}
			cnt++;
			x/=2;
		}
	}
	if(!ok) {
		puts("0");return 0;
	}else {
		cout << ans;
	}
	return 0;
}
//  [cpp]
#include <bits/stdc++.h>
using namespace std;

int main() { 
  int N;
  vector<int> v(N);
  for (int i = 0; i < N; i++){
    cin >> v.at(i);
  }
  int e = 0;
  for (int i = 0; i < N; i++){
    int d = 0;
    if (v.at(i) % 2 == 0) {
      v.at(i) /= 2;
      d += 1;
      continue;
    } else {
      if(d!=0 || d<e){
        e = d;
      }
      break;
    }

  }
  cout << e << endl;
}
//  [c]
#include<stdio.h>
int main()
{
	long long n;
	int sum=0,t;
	int min=100;
	scanf("%d",&t);
	while(t--)
	{
		sum=0;
		scanf("%lld",&n);
		while(1)
		{
			if(n%2==0)
			{
				sum++;
				n/=2;
			}
			if(n%2!=0)
			break;
		}
		if(sum<min)
		min=sum;
	}
	printf("%d\n",min); 
	return 0;
}
//  [c]
#include<stdio.h>
#include<limits.h>

int main() {
	int n, min = INT_MAX;
	scanf("%d", &n);
	for (int i = 0; i < n; ++i) {
		int x, cnt = 0;
		scanf("%d", &x);
		while (x % 2 == 0 && x>0) {
			x = x / 2;
			++cnt;
		}
		min = cnt < min ? cnt : min;
	}
	printf("%d", min);
}
//  [c]
#include<stdio.h>
int main(void){
	
	int N,A[200],kaisuu,i,ninoinsi[200];
	scanf("%d",&N);
	
	
	for(i=0;i<N;i++){
	scanf("%d",&A[i]);
	}
	for(i=0;i<N;i++){
		ninoinsi[i]=0;
	}
	

		for(i=0;i<N;i++){
		while(A[i]%2==0){
			A[i]=A[i]/2;
			ninoinsi[i]++;
		}
	}

	
	kaisuu=ninoinsi[0];
	for(i=1;i<N;i++){
		if(ninoinsi[i]<kaisuu){
		kaisuu=ninoinsi[i];
	}
	}
	
	printf("\n%d\n\n",kaisuu);

	
	return 0;
}
//  [c]
#include <stdio.h>

int main(void)
{
  int n = 0, i, flag = 0;
  int a[200];

  scanf("%d", &n);
  for (i = 0;i < n; i++)
    scanf("%d", &a[i]);
  while(1)
  {
    i = 0;
    while (a[i] % 2 == 0)
    {
      a[i] = a[i] / 2;
      i++;
    }
    if (i >= n)
      flag++;
    else
      break ;
  }
  printf("%d\n", flag);
  return (0);
}
//  [c]
#include <stdio.h>

int main(void)
{
  int n = 0, i, flag = 0, min = 1000000000;
  int a[200];

  scanf("%d", &n);
  for (i = 0;i < n; i++)
    scanf("%d", &a[i]);
  for(i = 0;i<n;i++)
  {
    while (a[i] % 2 == 0 && i < min)
    {
      a[i] /= 2;
      i++;
    }
    if (i < min)
      min = i;
  }
  printf("%d\n", min);
  return (0);
}