
Будемо використовувати такі (стандартні) визначення з теорії графів. Нехай — це непорожня скінченна множина, елементи якої називаються вершинами (або вузлами). Нехай E \subseteq V \times V, елементи якої називаються ребрами. Тоді G = (V, E) називається орієнтованим графом.
Нехай — додатне ціле число, і нехай p = (e_1, \ldots, e_n) — послідовність довжини ребер e_i \in E така, що e_i = (v_i, v_{i+1}) для послідовності вершин (v_1, \ldots, v_{n+1}). Тоді називається шляхом від вершини v_1 до вершини v_{n+1} у , і кажуть, що v_{n+1} досяжна з v_1, записуючи (v_1 \to v_{n+1}).
Ось деякі нові визначення. Вузол у графі G = (V, E) називається стоком, якщо для кожного вузла у , який досяжний з , також досяжна з .
Дно графа — це підмножина всіх вузлів, які є стоками, тобто
Ваше завдання — обчислити дно заданих графів.
Вхід містить кілька тестових випадків, кожен з яких відповідає орієнтованому графу . Кожен тестовий випадок починається з цілого числа , яке позначає кількість вершин G = (V, E), де вершини ідентифікуються цілими числами з множини V = \{1, \ldots, v\}. Можна вважати, що 1 \le v \le 5000. Далі йдуть невід'ємне ціле число , а потім пар ідентифікаторів вершин v_1, w_1, \ldots, v_e, w_e із значенням, що (v_i, w_i) \in E. Інших ребер, окрім зазначених у цих парах, немає. Останній тестовий випадок супроводжується нулем.
Для кожного тестового випадку виведіть дно зазначеного графа в одному рядку. Для цього надрукуйте номери всіх вузлів, які є стоками, у відсортованому порядку, розділені одним пробілом. Якщо дно порожнє, надрукуйте порожній рядок.
Приклад 1