比特萨国王在城堡里藏了一处宝藏,并对藏宝地点保密。然而,每当他去打仗时,他都担心自己可能会牺牲,从而导致宝藏丢失。因此,他挑选了若干名值得信赖的守卫,并将寻找宝藏所需的部分信息透露给他们每个人。接着,他命令他们前往城堡下方的地下墓穴,并在那里按照“右手规则”行走。墓穴之间由通道相连。通道在墓穴之外不会交叉,但它们可能会从其他通道下方穿过。不存在起点和终点为同一个墓穴的通道。右手规则规定,守卫在进入一个墓穴后,应从右侧的下一条通道离开。守卫们被分配了不同的起点,这些起点位于通道的入口处。可能会有多个守卫从同一个墓穴出发,只要他们进入的不是同一条通道。
国王知道,在他牺牲或从战场平安归来之前,所有守卫都会忠实地执行他的命令。然而,他也意识到,每当有两个或更多的守卫在某个墓穴中相遇时,他们都会忍不住分享自己所知道的关于宝藏的所有信息。守卫们并不自私,即使其中一些人无法学到任何新信息,他们也会分享。如果有些守卫从同一个墓穴出发,他们会立即分享各自最初知道的信息。然而,如果他们在通道中擦肩而过,他们则不会交谈。
国王在思考,当他从战场平安归来时,宝藏是否依然安全。他想知道哪些守卫可能会获得寻找宝藏所需的全部信息。
请编写一个程序:
- 从标准输入读取城堡地下室的描述、守卫的初始位置以及每个守卫最初知道的信息;
- 确定哪些守卫能够最终知道寻找宝藏所需的全部信息;
- 向标准输出写入这些守卫的编号。
输入格式
第一行包含一个整数 $n$,表示地下墓穴的数量,$2 \le n \le 100$。墓穴从 $1$ 到 $n$ 进行编号。
接下来的 $n$ 行描述了连接墓穴的通道。在第 $(i+1)$ 行中,按顺时针顺序描述了从第 $i$ 个墓穴引出的通道。每行中的整数由单个空格分隔。其中的第一个数字 $k_i$ 是从第 $i$ 个墓穴引出的通道数量,$1 \le k_i \le n-1$。紧接着在同一行中是 $2k_i$ 个整数:每条引出的通道由两个整数描述,前者是该通道通往的墓穴编号,后者是通道的长度(一个介于 $1$ 到 $100$ 之间的整数)。通道是双向的,即如果从墓穴 $a$ 有一条长度为 $l$ 的通道通往墓穴 $b$,那么从墓穴 $b$ 也会有一条长度为 $l$ 的通道通往墓穴 $a$。任意两个墓穴之间最多只能有一条通道相连。守卫沿着一条通道行走所需的时间恰好等于该通道的长度。我们假设守卫在墓穴中停留的时间可以忽略不计。
在第 $(n+2)$ 行包含两个整数 $k$ 和 $l$($1 \le k \le 100$,$1 \le l \le 100$),其中 $k$ 是守卫的数量,$l$ 是寻找宝藏所需的信息碎片数量。守卫从 $1$ 到 $k$ 编号。关于宝藏的信息碎片从 $1$ 到 $l$ 编号。
接下来的 $k$ 行描述了守卫的信息(第 $i$ 个守卫在第 $(i+n+2)$ 行中描述)。每行包含由单个空格分隔的若干整数。每行的第一个整数是该守卫出发的墓穴编号。第二个整数是该守卫首先前往的墓穴编号。第三个整数 $m_i$ 是第 $i$ 个守卫最初知道的关于宝藏的信息碎片数量,$0 \le m_i \le l$。随后行中的 $m_i$ 个整数是第 $i$ 个守卫最初知道的信息碎片的编号。
输出格式
第一行输出一个整数:最终能够知道寻找宝藏所需全部信息的守卫数量。
接下来的行中,按升序输出这些守卫的编号,每行一个编号。
样例
输入 1
4 3 2 3 3 4 4 1 2 1 3 3 1 3 4 3 1 4 2 1 2 1 1 3 3 3 4 1 4 2 2 3 3 1 2 1 2 3 4 2 3 4
输出 1
2 2 3