При анализе исходного текста программы полезно знать, присутствуют ли в нем операторы,
которые никогда не будут выполняться, т.к. это практически всегда говорит об ошибках
в программе. Поэтому модули для такой проверки включаются в состав компилятора для любых
языков программирования. Вам необходимо смоделировать работу такой проверяющей подсистемы.
Входные данные состоят из N строк (1 <= N <= 10000), полученных в результате синтаксического
анализа исходного текста программы. Каждая строка этого файла соответствует одному оператору
исходного текста и содержит следующие данные:
NEXT - после оператора, соответствующего этой строке, может быть выполнен лишь
следующий по порядку оператор;
JUMP номер - после оператора, соответствующего этой строке, может быть выполнен
лишь оператор с указанным номером (нумерация операторов начинается с единицы);
JUMP номер1 OR номер2 - после оператора, соответствующего этой строке, может быть
выполнен один из двух операторов, номера которых указаны.
Номера операторов отделены от служебных слов одним или несколькими пробелами.
Известно, что программа всегда начинает выполняться с оператора с номером 1.
Выходные данные помещаются состоят из нескольких строк. Первая строка содержит
число невыполняемых операторов, каждая из последующих строк - их номера, расположенные
в порядке возрастания.
Пример входных данных:
NEXT
JUMP 4 OR 6
NEXT
JUMP 3
NEXT
JUMP 8
NEXT
NEXT
Пример выходных данных:
2
5
7
|