Sherlock Holmes is a renowned detective. His Scotland Yard colleagues often provide him with a set of evidence and ask for his help in solving the mysteries. After many years of practice, Holmes has gained an enormous amount of experience and already knows the causes for many common events, which, combined with his extraordinary deductive capabilities, enables him to solve cases in a matter of minutes, from the comfort of his chair.
Holmes' knowledge base can be modeled as a set of implications of the
form (where
and
represent events), which means that, if
occurred, event
must have also occurred (remember that logical
implication is false only if
is true and
is false). Of course,
implications can form chains of reasoning (e.g.
). However,
there will never be a circular chain of implications (e.g.
).
Holmes is given a set of events
that are known to have occurred. He can then, using his extensive
knowledge and deductive powers, find all events that have
certainly occurred.
It's important to note that Holmes' knowledge is so mind-bogglingly huge that he knows all possible causes of events. In other words, there is no implication that is true, but not included in Holmes' knowledge base.
Many detective agencies would highly appreciate Holmes' one of a kind capabilities, so you were given a task to accomplish with a computer what is out of reach for ordinary mortals. Write a program to find all events that have certainly occurred based on the given implications and evidence collected by your colleague detectives.
Input Specification
The first line of input consists of three integers,
,
the number of different types of events,
,
the number of implications, and
, the number
of evidence collected by the detectives.
Each of the lines that follow contains two integers
and
, describing an implication
.
Finally, each of the last lines contain an integer
describing an event that must have occurred, based on the evidence
collected by detectives.
Output Specification
The first and only line of output should contain integers (in any order) representing events that have certainly occurred.
Sample Input 1
3 2 1
1 2
2 3
2
Sample Output 1
1 2 3
Sample Input 2
3 2 1
1 3
2 3
3
Sample Output 2
3
Explanation for Sample Output 2
The knowledge base contains implications and
. Therefore,
Holmes knows that event
can be caused only by events
and
, but
(without any extra information), he can't be certain which one of
those events actually caused
. As a result, the only event that must have
occurred is the one given in the input.
Sample Input 3
4 4 1
1 2
1 3
2 4
3 4
4
Sample Output 3
1 2 3 4
Explanation for Sample Output 3
Holmes doesn't know which event from the set is directly
responsible for event
. However, as both of those events are caused
only by event
, Holmes can deduce that event
must have
occurred. As a consequence, events
,
and
(given by the
detectives) have also occurred.
Comments