题号:NC281984
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
给定三个排列

,

次询问一个

,求
))
。
对于
)
,若排列

中第

个元素之后不存在满足
%5Cneq%201)
的

(

),则
%3Db_x)
。 反之
)
的值为排列

中第

个元素之后第一个满足
%5Cneq%201)
的
)
。
对于
)
,
![g(x)=\sum\limits_{i=c[x]}^n[x\mid a_i]](https://www.nowcoder.com/equation?tex=g(x)%3D%5Csum%5Climits_%7Bi%3Dc%5Bx%5D%7D%5En%5Bx%5Cmid%20a_i%5D)
。
其中
![[a\mid b]=\begin{cases}1&& a\mid b\\0 && a\nmid b\end{cases}](https://www.nowcoder.com/equation?tex=%5Ba%5Cmid%20b%5D%3D%5Cbegin%7Bcases%7D1%26%26%20a%5Cmid%20b%5C%5C0%20%26%26%20a%5Cnmid%20b%5Cend%7Bcases%7D)
,

表示

是

倍数,

表示

不是

的倍数。
长度为

的排列是一个由

个不同整数组成的数组,这些整数从

到

以任意顺序排列。
输入描述:
第一行输入两个正整数
分别表示排列大小和询问次数。
第二行
个正整数表示排列
。
第三行
个正整数表示排列
。
第四行
个正整数表示排列
。
接下来
行,每行一个正整数
表示询问。
输出描述:
输出共
行,对于每次询问输出一行一个整数表示结果。
示例1
输入
复制
5 5
5 3 4 2 1
5 1 3 2 4
3 4 5 1 2
2
1
4
5
3