一种新型传染病已开始在人群中传播。你的任务是找出可能被感染的人,以便让他们进行隔离。该疾病在人群中的传播规律如下:
- 当一个人与感染者接触时,他们可能会(但不一定)感染该疾病。如果他们感染了该疾病,他们在当天剩余时间内不具有传染性,因此不会传染给当天接触的其他任何人。
- 当一个人感染该疾病后,从感染后的第二天起具有传染性。
- 从感染后的第三天起,他们会出现症状;因此,他们将进行自我隔离,此后不再与任何其他人接触。
已知在第 0 天,有一名“零号病人”(身份未知)感染了该疾病。在第 1 天,他们具有传染性,并可能与人接触,从而可能感染这些人。在第 2 天,零号病人出现症状,因此停止与他人接触,但任何在第 1 天被感染的人都可能将疾病传播给他们接触的人。
今天是第 $k$ 天,且已接近尾声。你可以获取每一天(包括今天)所有接触过的人的名单。如果你能识别出所有明天可能具有传染性但尚未出现症状的人(因为他们今天才感染),并通知他们隔离,你就可以阻止疫情爆发,因为所有明天出现症状的人无论如何都会自行隔离。为了确保能够阻止疫情爆发,你需要通知的最少隔离人数是多少?
输入格式
第一行包含三个整数 $n$ ($1 \le n \le 1,000$),$k$ ($1 \le k \le 10$) 和 $c$ ($0 \le c \le 1,000$),其中 $n$ 是人数,$k$ 是自零号病人感染以来的天数,$c$ 是人与人之间发生的接触次数。
接下来的 $c$ 行,每行包含三个空格分隔的整数 $a$,$b$ ($1 \le a < b \le n$) 和 $d$ ($1 \le d \le k$),表示人 $a$ 和 $b$ 在第 $d$ 天有过接触。这 $c$ 行数据各不相同。至少会有一个人在第 1 天之后没有任何接触。
输出格式
输出一行,包含一个整数 $x$,表示从第 $k+1$ 天开始你必须通知隔离的最少人数。然后,输出 $x$ 行,每行一个需要隔离的人的编号,按升序排列。
样例
样例输入 1
4 2 4 1 4 1 2 3 2 2 4 1 3 4 1
样例输出 1
2 2 3
说明 1
在样例 1 中,零号病人可能是 1 号或 4 号。2 号和 3 号可以排除,因为他们在第 2 天有过接触,而此时零号病人已经出现症状并被隔离了。
假设 1 号是零号病人。1 号可能在第 1 天感染了 4 号。1 号在第 2 天出现症状,因此开始隔离。因此,从 1 号(零号病人)到 2 号或 3 号没有接触链,所以 2 号和 3 号是安全的,不需要隔离。如果 1 号在第 1 天感染了 4 号,那么 4 号将在明天(第 3 天)出现症状,因此不需要联系他们,因为他们会自行隔离。因此,如果零号病人是 1 号,则无需通知任何人。
现在假设 4 号是零号病人。4 号可能在第 1 天感染了 1 号;使用与上述相同的逻辑,无需通知 1 号或 4 号在第 3 天隔离。这留下了 2 号和 3 号,这需要我们考虑多种感染模式。
如果 4 号在第 1 天同时感染了 2 号和 3 号,那么他们两人都会在第 3 天出现症状并自行隔离,因此我们不需要通知他们。
假设 4 号在第 1 天感染了 2 号但没有感染 3 号。(请记住,传播不是必然的。)在这种情况下,2 号可能会在第 2 天感染 3 号,而 3 号在第 3 天尚未出现症状,因此我们需要通知 3 号进行隔离。
同样,如果 4 号在第 1 天感染了 3 号但没有感染 2 号,我们需要通知 2 号进行隔离。
因此,为了确保我们能阻止疫情爆发,我们需要通知 2 号和 3 号进行隔离。这保证了无论 1 号还是 4 号是零号病人,疫情都能被阻止。