Kernel Scheduler

You are developing the scheduling module for the new operating system.
This module takes  tasks to be executed and the dependencies between them
and then puts them in a certain order for execution.

More formally, there are  tasks numbered from  to . You are also
given  dependencies numbered from  to ; -th of them 
is described by two numbers -  and , meaning that the task 
should be executed before the task .

In some cases, there are cyclical dependencies - situations when according
to the dependencies given some task  should be executed before , 
before , , and  before  and  before . Cyclical
dependencies create a problem for scheduling, so you decided to remove some of the 
given dependencies in such a way that the resulting set does not contain any cyclical
ones.

However, you still need to keep at least  original dependencies to preserve some of the 
original information. You are to write the program performing this task.

Input
	itemize
One line containing the numbers  and  (, ).
 further lines, each containing two numbers  and  (, ),
describing the corresponding dependency between two tasks  and .

	itemize

Output
The first line should should contain YES in case the desired subset of dependencies exists,
and NO otherwise.

In the YES case second line should contain the number  of the selected 
dependencies (please note that  should be at least ) and the third line
should contain  numbers - the ids of the selected dependencies. They are numbered
from  to  in the order given in the input.

