Byteburg 是河边一座美丽的城镇。沿河有 $n$ 座房屋,按河流下游方向依次编号为 $1$ 到 $n$。Byteburg 曾经是一个宁静祥和、人人幸福的小镇。然而,最近情况发生了变化,两名危险的罪犯——Bitie 和 Bytie 在此落脚。他们已经犯下了多起抢劫案,以至于市民们不敢离开家门。
Bitie 和 Bytie 并非简单的入室盗窃,而是进行大规模的洗劫:他们每次离开各自的住所,朝着对方的方向行走,中途从不回头。Bitie 向下游(编号增大的方向)行走,而 Bytie 向上游(编号减小的方向)行走。在相遇之前,他们各自会选择若干房屋进行抢劫,窃取珍贵的物品(以及重要数据)。抢劫完成后,他们在某座房屋会合并瓜分赃物。Byteburg 的居民对此已经忍无可忍,他们都希望恢复往日的宁静。于是,他们向侦探 Bythony 求助。
侦探确定了这两名歹徒居住在颜色相同的房屋中,但他不知道具体是哪一座。就在刚才,一条匿名线索称,劫匪们正在进行一次洗劫。由于担心自身安全,线索提供者没有说明哪些房屋会被抢劫,但指出了这些房屋的颜色。事实证明,歹徒们非常迷信——他们每个人对每种颜色的房屋最多只会抢劫一次。
Bythony 不能再等了。他打算在劫匪的会合地点伏击他们。请编写一个程序,帮助 Bythony 找出所有可能的会合地点,从而协助他的行动。
输入格式
第一行包含两个整数 $n$ 和 $k$ ($3 \le n \le 1\,000\,000$, $1 \le k \le 1\,000\,000$, $k \le n$),分别表示 Byteburg 的房屋数量和房屋颜色数量,中间用空格隔开。颜色用 $1$ 到 $k$ 的整数编号。第二行包含一个长度为 $n$ 的整数序列 $c_{1},c_{2},\dots,c_{n}$ ($1 \le c_{i} \le k$),表示 Byteburg 中各房屋的颜色。
第三行包含两个整数 $m$ 和 $l$ ($1 \le m,l \le n$, $m+l \le n-1$),分别表示 Bitie 和 Bytie 将要抢劫的房屋数量,中间用空格隔开。第四行包含 $m$ 个互不相同的整数 $x_{1},x_{2},\dots,x_{m}$ ($1 \le x_{i} \le k$),表示 Bitie 抢劫房屋的颜色序列(按抢劫顺序,不包含 Bitie 的住所)。第五行(最后一行)包含 $l$ 个互不相同的整数 $y_{1},y_{2},\dots,y_{l}$ ($1 \le y_{i} \le k$),表示 Bytie 抢劫房屋的颜色序列(按抢劫顺序,不包含 Bytie 的住所)。此外,$x_{m}=y_{l}$ 是劫匪们瓜分赃物的房屋颜色。(显然,他们也必须抢劫那座房屋!)
输出格式
你的程序需要向标准输出打印两行。第一行应给出在满足上述约束条件下,罪犯可能相遇的房屋数量。第二行应包含这些房屋编号的递增序列,中间用空格隔开。如果劫匪无法相遇,第一行应输出 $0$,第二行应为空。
样例
输入 1
15 7 2 5 6 2 4 7 3 3 2 3 7 5 3 6 2 3 2 4 7 3 5 3
输出 1
3 7 8 10
说明