#z1038. 量子随机排序

量子随机排序

Description

V 试图侵入荒坂公司的主服务器,获取关键的机密数据。然而,这台 服务器采用了先进的安全防护机制,其中最核心的一环是一个基于量 子快速排序算法的防御系统。 这个防御系统会对一个数据序列不断进行量子快速排序,以防止未经授权的访问。 数据序列由 n 个数组成,初始序列为 a1, a2, ⋯ , a𝑛。 每当有人试图访问时,防御系统会自动触发量子随机排序算法,对数据序列进行重新排列。而只有当数据序列被排列成一个特定的序列 b1, b2, ⋯ , b𝑛 时,V 才能绕过防御系统,成功获取机密数据。 服务器使用的量子快速排序算法如下: image image 其中,quantum_rand() 是量子随机数生成器,可以用于产生随机数。 不过,V 已经成功破解了这个量子随机数生成器,可以通过干预指定每次 quantum_rand() 的返回值。 quantum_rand() 的调用需要大量时间,由于 V 的时间有限,最多只能等待 quantum_rand() 执行 k 次。一旦 quantum_rand() 的调用 超过了 k 次,即视为任务失败。 V 的目标是,让初始序列 a1, a2, ⋯ , a𝑛 在调用 shuffle(a) 后,通过指定前 k 次 quantum_rand() 的返回值,使得最终的序列变成b1, b2, ⋯ , b𝑛。 若任务无法完成,请输出 −1;否则,输出 k 次 quantum_rand 的返回结果。答案可能不止一种,输出任意一种满足条件的答案即可。

Format

Input

第一行包含两个用空格分隔的整数 n, k。 第二行包含 n 个用空格分隔的整数 a1, a2, ⋯ , a𝑛。 第三行包含 n 个用空格分隔的整数 b1, b2, ⋯ , b𝑛,保证 b 是 a 的 一个排列。

Output

image

Samples

样例1

3 3 
1 2 3 
2 3 1
2 0 1

样例2

3 2 
1 2 3 
2 3 1
-1

样例3

3 2 
1 1 1 
1 1 1
-1

样例3说明: 虽然 a 最终一定会排列成 b,但是 quantum_rand() 的调用次数必然超过2。 因此由于时间原因,任务无法完成。

Limitation

image

1s, 1024KiB for each test case.