Marcin Kubica
Tłumaczenie


Excursion


Grupa podróżników zamierza odwiedzić wybrane miasta. Każdy podróżnik określa dwa życzenia dotyczące odwiedzenia bądź nieodwiedzenia danego miasta. Jedno życzenie to stwierdzenie, że się chce odwiedzić dane miasto, albo że się nie chce odwiedzać danego miasta. Jedno życzenie dotyczy tylko jednego miasta. Można w obu życzeniach odnieść się do tego samego miasta; zarówno zgodnie - wtedy oba życzenia są identyczne - jak i przeciwstawnie, czyli np. ,,Ja chcę odwiedzić miasto A'' i ,,Ja nie chcę odwiedzać miasta A''.

Zadanie

Twoje zadanie polega na napisaniu programu, który Jeżeli jest kilka możliwych rozwiązań, Twój program powinien zapisać dowolne z nich.

Wejście

Pierwszy wiersz pliku exc.in zawiera dwie dodatnie liczby całkowite n oraz m (1 le n le 20,000, 1 le m le 8,000); n jest liczbą podróżników, zaś m jest liczbą miast. Podróżnicy są ponumerowani od 1 do n, a miasta od 1 do m. Każdy z kolejnych wierszy pliku zawiera dwie różne od zera liczby całkowite oddzielone pojedynczym odstępem. Wiersz i+1 zawiera liczby wi oraz w'i oznaczające życzenia i-tego podróżnika,

-m le w_i, w'_i le m, w_i, w'_i neq 0. Liczba dodatnia oznacza, że podróżnik chce odwiedzić, a ujemna, że podróżnik nie chce odwiedzać miasta, którego numer jest równy wartości bezwzględnej tej liczby.

Wyjście

W pierwszym wierszu pliku wyjściowego exc.out, Twój program powinien zapisać jedną nieujemną liczbę l określającą proponowaną liczbę miast do odwiedzenia. W drugim wierszu tego pliku powinno się znaleźć dokładnie l dodatnich liczb całkowitych, określających miasta, które mają być odwiedzone. Liczby te muszą być podane w porządku rosnącym.

Gdyby takiej listy miast nie dało się stworzyć, Twój program powinien umieścić w pierwszym i jedynym wierszu pliku wyjściowego jedno słowo NO.

Przykład

Dla pliku wejściowego exc.in
3 4
1 -2
2 4
3 1
poprawną odpowiedzią jest plik wyjściowy exc.out
2
3 4