Fiona 是一位专业的攀岩者。她经常随身携带一些岩钉,并将它们钉在岩壁上的某些战略位置,以便经验不足的攀岩者可以利用它们进行支撑。Fiona 可以攀爬到岩壁上的任何地方,但打入岩钉需要保持平衡,因此她只能在自己站立于当前已有的岩钉(或者当然,地面)上时才能放置一个岩钉。她可以随时移除一个岩钉并在以后重复使用。对于她计划访问的每一面岩壁,她都有一个周密的计划,规定了如何放置和移除岩钉,以确保在每一步中每个战略点都有一个岩钉。
Picture by Graham Evans
昨天下了雨,所以岩石会变湿,移除岩钉可能不安全。因此,Fiona 只有在能够站在与放置岩钉 $p$ 时相同的岩钉上时,才会移除该岩钉 $p$。遗憾的是,Fiona 现有的计划并没有考虑到这一新的预防措施,所以 Fiona 需要更新她的计划,并向你寻求帮助。她不想携带太多的额外岩钉,所以你承诺找到一种安全的计划,其使用的岩钉数量最多不超过她之前计划所用数量的 10 倍。你能兑现你的承诺吗?
例如,考虑第一个样例输入中包含 5 个战略点的岩壁。点 1 靠近地面,因此它不依赖于任何点。为了在点 2 放置岩钉,点 1 必须有岩钉,点 3 也是如此。为了在点 4 放置岩钉,点 2 和点 3 都必须有岩钉。为了在点 5 放置岩钉,只要点 4 有岩钉就足够了。
因此,序列(带有 $+$ 和 $-$ 注释,取决于我们是添加还是移除岩钉)$+1, +2, +3, -1, +4, -2, -3, +5$ 是一个安全的干燥计划,它使用了 3 个岩钉。然而,它不是一个安全的潮湿计划,因为我们在没有支撑的情况下移除了点 2 和点 3 的岩钉。序列 $+1, +2, -2, +3, -1, +4, -3, +5$ 仅需要 2 个岩钉,但它根本不安全,因为我们在点 2 没有岩钉的情况下向点 4 添加了岩钉。序列 $+1, +2, +3, -1, +4, +5$ 是一个安全的潮湿计划,它使用了 4 个岩钉。
输入格式
第一行包含一个整数 $n$ ($1 \le n \le 1000$),即岩壁上战略点的数量。 接下来的 $n$ 行,每行包含一个整数 $p$ ($0 \le p < n$) 和一个包含 $p$ 个整数的列表。如果第 $i$ 行包含 $x_1, \dots, x_p$ ($1 \le x_j < i$),则意味着为了在点 $i$ 放置岩钉,所有点 $x_j$ 都必须有岩钉。 下一行包含一个整数 $t$ ($1 \le t \le 1000$),即安全干燥计划中的步数。接下来的 $t$ 行,每行包含一个整数 $i$,表示正在向点 $i$ 放置岩钉或从点 $i$ 移除岩钉。
输出格式
如果没有使用不超过安全干燥计划岩钉数量 10 倍的岩钉的安全潮湿计划,输出 $-1$。否则,第一行必须包含一个整数 $t$ ($1 \le t \le 1\,000\,000$),即安全潮湿计划中的步数。接下来的 $t$ 行,每行必须包含一个整数 $i$,表示正在向点 $i$ 放置岩钉或从点 $i$ 移除岩钉。
样例
输入格式 1
5 0 1 1 1 1 2 2 3 1 4 8 1 2 3 1 4 2 3 5
输出格式 1
6 1 2 3 1 4 5
输入格式 2
3 0 1 1 1 2 4 1 2 1 3
输出格式 2
4 1 2 1 3