Bob 最喜欢的游戏刚刚推出了一款限时出售的道具,可以大幅提升他的游戏角色战力。然而,Bob 没有足够的时间在游戏中赚取足够的货币来购买该道具。因此,他决定借助在网上找到的一个修改器来修改他的游戏内货币值。
该修改器需要 Bob 指定两个值 $x$ 和 $y$,并将所有存储了值 $x$ 的内存单元覆写为 $y$。Bob 不希望不安全地使用该修改器。他不想修改除存储其货币值的内存单元以外的任何其他内存单元,以免导致游戏崩溃。因此,在运行修改器之前,Bob 需要确保他的货币值在游戏的内存空间中没有任何重复。Bob 可以使用游戏提供的一系列操作来修改他的货币值,例如完成任务、购买道具等。这些操作可以将他的货币值加上、减去、乘以或除以一个常数。所有这些操作都只会改变 Bob 的货币值,而不会影响任何其他内存单元。Bob 不能使用会导致其货币值变为负数的操作(例如购买价格高于其当前可用货币的道具)。
Bob 知道游戏的内存空间可以表示为一个由 $n$ 个整数组成的数组。他也知道在这个数组中存储其货币值的内存单元的位置。然而,Bob 不知道如何才能尽快修改他的货币值,以便安全地使用修改器。你能帮帮他吗?
输入格式
输入的第一行包含三个整数 $n$、$m$ 和 $k$($1 \le n \le 10^4$,$1 \le m \le 1000$,$1 \le k \le n$),其中 $n$ 是游戏内存空间中的内存单元数量,$m$ 是 Bob 可以使用的操作数量,$k$ 是存储 Bob 游戏内货币值的内存单元在游戏内存空间中从 1 开始的索引。
接下来的 $n$ 行,每行包含一个介于 $1$ 和 $10^9$ 之间的整数,依次给出存储在游戏内存空间中的值。
接下来的 $m$ 行,每行包含一个字符 $p$(+、-、* 或 /)和一个整数 $v$($1 \le v \le 10^9$),描述 Bob 可以用来改变其货币值的一个操作。如果 Bob 当前的货币值为 $u$,那么在应用该操作后,他的货币值将变为 $u \ p \ v$。例如,应用操作 + 3 将使 Bob 的货币值增加 $3$。除法为整除(例如 $7 / 3 = 2$)。如果某个操作会导致货币值变为负数,则不能应用该操作。每个操作都可以被应用多次(包括零次)。
输出格式
如果 Bob 可以使他的游戏内货币值在游戏的内存空间中变得唯一,请在第一行输出一个整数 $t$,表示 Bob 必须应用的最少操作次数。
然后输出 $t$ 行,每行包含一个整数,表示 Bob 应该依次应用的操作的从 1 开始的索引。如果有多种应用操作的方法,你可以输出其中任意一种。
如果 Bob 无法使他的货币值在游戏的内存空间中变得唯一,请输出 -1。
样例
样例输入 1
5 3 4 2 1 3 2 3 - 1 * 2 + 3
样例输出 1
1 2