Pokemon
View as PDFYou have pokemon. Each pokemon has exactly one type, an integer between
and
inclusive. Types form a cycle of matchups: type
beats type
for
, and type
beats type
. A type beats only that next type in the
cycle — not itself, and not any other type.
The types of the pokemon are unknown. You are given statements in order, each
claiming that one pokemon beats another. Process the statements one by one. For
each statement, decide whether there exists an assignment of types to the pokemon
that makes this statement true together with all previously accepted statements.
If so, accept the statement and output
Yes; otherwise reject it and output No.
Rejected statements are discarded and are not used when checking later statements.
Input
The first line contains integers ,
, and
.
The following lines each contain two integers
and
, stating that pokemon
beats pokemon
.
Output
For each statement, output a line containing Yes or No, indicating whether the
statement is accepted.
Constraints
Example 1
Input
5 3 10
3 3
1 1
2 4
3 3
4 4
5 4
3 5
4 3
1 3
2 5
Output
No
No
Yes
No
No
Yes
Yes
Yes
Yes
No
Example 2
Input
8 4 20
4 3
4 4
4 3
4 3
5 5
3 6
6 3
4 4
8 7
1 2
8 2
3 6
6 8
4 5
2 8
3 6
7 6
5 8
8 2
1 6
Output
Yes
No
Yes
Yes
No
Yes
No
No
Yes
Yes
Yes
Yes
Yes
Yes
No
Yes
No
No
Yes
No
Comments