题目描述
长度为 N 的排列是一个数组:
P=[P1,P2,…,PN],
其中 1 到 N 的每个整数恰好出现一次。
排列的字典序
设 A 和 B 是两个长度为 N 的排列。
当且仅当存在某个下标 i,满足:
- Ai<Bi;
- 对所有 1≤j<i,都有 Aj=Bj;
称 A 的字典序小于 B。
排列乘法
若 A 和 B 都是长度为 N 的排列,定义排列乘积:
A×B
的第 i 个元素为:
(A×B)i=ABi.
排列幂
对排列 P 和正整数 z,定义:
P1=P,
当 z>1 时:
Pz=Pz−1×P.
现在给定一个长度为 N 的排列 P。
令 M 为满足:
PM=P
的最小整数,并且要求:
M>1.
考虑所有排列:
P1,P2,…,PM−1.
它们恰好是互不相同的排列。
把这些排列按字典序从小到大排序,得到数组:
A=[A1,A2,…,AM−1].
即对任意:
1≤i<j<M,
都有:
Ai<Aj.
现在有 Q 次查询。
第 i 次查询给出一个整数 Ki,需要输出一个整数 Ti,满足:
1≤Ti<M,
并且:
PTi=AKi.
也就是说,需要找到字典序第 Ki 小的排列幂所对应的指数。
示例
设:
P=[2,3,1,5,4].
则:
P1=[2,3,1,5,4],
P2=[3,1,2,4,5],
P3=[1,2,3,5,4],
P4=[2,3,1,4,5],
P5=[3,1,2,5,4],
P6=[1,2,3,4,5],
P7=[2,3,1,5,4]=P.
因此:
M=7,
按字典序排序后:
A=[P6,P3,P4,P1,P2,P5].
输入格式
第一行包含两个整数 N,Q:
1≤N≤100,
1≤Q≤300000.
第二行包含 N 个整数:
P1,P2,…,PN,
表示给定排列。
保证:
1≤Pi≤N,
并且所有 Pi 两两不同。
接下来 Q 行,每行包含一个整数 Ki,满足:
1≤Ki<M.
其中 M 为题目中定义的最小正整数,但输入不会显式给出 M。
输出格式
输出 Q 行。
第 i 行输出一个整数 Ti,表示第 i 次查询的答案。
样例
输入
5 6
2 3 1 5 4
1
2
3
4
5
6
输出
6
3
4
1
2
5