在一个晴朗的日子里,$n$ 名学生聚集在校园里,围成一个大圈。每个人都有一个装有球的盒子(第 $i$ 个人有 $a_i$ 个球),以及一个他暗恋的人(可能就是他自己),用 $s_i$ 表示。
他们决定玩他们最喜欢的游戏——Krugomet。玩 Krugomet 一共进行 $k$ 轮。在每一轮中,游戏的所有参与者同时将他们所有的球扔向他们暗恋的人。学生们非常熟练且敏捷,因此他们总能接住在一轮中扔给他们的所有球。接住球后,每个人都为下一轮做好准备,然后重复整个过程。
老师在长椅上睡着了,留下学生们自己玩。当他醒来时,学生们让他告诉他们谁赢了,即回答以下两个问题:
- 在玩了 $k$ 轮之后,拥有球最多的学生有多少个球?
- 在玩了 $k$ 轮之后,谁收集到的球最多?
老师知道有多少学生玩了 Krugomet(即 $n$)、暗恋对象序列 $s_i$、每个学生初始的球数 $a_i$ 以及玩了多少轮 $k$。不幸的是,老师没有时间去数每个人有多少个球,所以他把这个问题留给了你。
请帮助他并确定收集到最多球的学生列表。如果有多个人的球数并列最多,请按从小到大的顺序输出他们的编号。
输入格式
第一行包含两个自然数 $n$ 和 $k$($1 \le n \le 10^5$,$1 \le k \le 10^9$),含义如题面所述。
第二行包含 $n$ 个自然数 $a_i$($1 \le a_i \le 1000$),表示每个学生初始的球数。
第三行包含 $n$ 个自然数 $s_i$($1 \le s_i \le n$),表示每个学生暗恋的人的编号。
输出格式
第一行输出一个整数,表示收集到最多球的学生所拥有的球数。
第二行输出收集到最多球的学生的编号。如果有多个学生,编号应按升序输出,用空格隔开。
子任务
| 子任务 | 分值 | 限制 |
|---|---|---|
| 1 | 14 | $n, k \le 1000$ |
| 2 | 26 | 序列 $s$ 是一个排列,即对于 $1 \le i < j \le n$,有 $s_i \neq s_j$。 |
| 3 | 30 | 无附加限制。 |
正确输出第一行可获得该测试点 50% 的分数。正确输出第二行可获得该测试点剩余 50% 的分数。
样例
样例输入 1
2 1 5 6 2 1
样例输出 1
6 1
样例输入 2
4 2 5 5 5 5 1 2 1 1
样例输出 2
15 1
样例输入 3
4 10000000 1 2 3 4 2 1 4 3
样例输出 3
4 4
说明
样例 1 说明:在仅有的一轮 Krugomet 中,编号为 1 和 2 的人将他们所有的球扔给对方,从而“交换”了每个人拥有的球数。第一轮结束后,编号为 1 的人拥有的球最多,为 6 个。