Problem:
Score : 1000 points

Problem Statement

For two permutations p and q of the integers from 1 through N, let f(p,q) be the permutation that satisfies the following:

The p_i-th element (1 \leq i \leq N) in f(p,q) is q_i.
Here, p_i and q_i respectively denote the i-th element in p and q.

You are given two permutations p and q of the integers from 1 through N.
We will now define a sequence {a_n} of permutations of the integers from 1 through N, as follows:

a_1=p, a_2=q

a_{n+2}=f(a_n,a_{n+1}) ( n \geq 1 )

Given a positive integer K, find a_K.

Constraints

1 \leq N \leq 10^5

1 \leq K \leq 10^9

p and q are permutations of the integers from 1 through N.

Input

Input is given from Standard Input in the following format:

N K
p_1 ... p_N
q_1 ... q_N

Output

Print N integers, with spaces in between.
The i-th integer (1 \leq i \leq N) should be the i-th element in a_K.

Sample Input 1

3 3
1 2 3
3 2 1

Sample Output 1

3 2 1

Since a_3=f(p,q), we just need to find f(p,q).
We have p_i=i here, so f(p,q)=q.

Sample Input 2

5 5
4 5 1 2 3
3 2 1 5 4

Sample Output 2

4 3 2 1 5

Sample Input 3

10 1000000000
7 10 6 5 4 2 9 1 3 8
4 1 9 2 3 7 8 10 6 5

Sample Output 3

7 9 4 8 2 5 1 6 10 3

Solution in Python (3.4.3) (judge verdict: Accepted)

import sys
input = sys.stdin.readline

import numpy as np

# 可換なら6回周期。6個計算すると、交換子で共役とったものだとわかる。

N,K = map(int,input().split())

P,Q = [np.array(input().split(), dtype=np.int32) for _ in range(2)]

P -= 1
Q -= 1

def inv(a):
    x = np.empty_like(a)
    x[a] = np.arange(len(x))
    return x

def mult_inv(a,b):
    # ab^{-1}
    c = np.empty_like(a)
    c[b] = a
    return c

def mult(a,b):
    return mult_inv(a,inv(b))

def power(a,n):
    if n == 0:
        return np.arange(len(a))
    x = power(a,n//2)
    x = mult(x,x)
    return mult(a,x) if n&1 else x

A = [P,Q]
for _ in range(4):
    A.append(mult_inv(A[-1],A[-2]))

q,r = divmod(K-1,6)
QP_Q_P = mult(mult_inv(mult_inv(Q,P),Q),P)
left = power(QP_Q_P,q)
right = inv(left)
answer = mult(mult(left, A[r]), right) + 1

print(' '.join(answer.astype(str)))