
Біллі — старанний студент. Він захоплюється комп'ютерами й хоче дізнатися про них якомога більше. Наразі він вивчає теорію графів і має написати програму, яка зможе побудувати граф, зображений на малюнку вище.
Вершини графа послідовно пронумеровані цілими числами від до N-1 (N \leq 10000). Існує два типи ребер: зворотні ребра, позначені літерою на малюнку (наприклад, з вершини у вершину , або з вершини у вершину ), і прямі ребра, позначені літерою (наприклад, з у або з у ).
Програма Біллі спочатку працює з графом, який містить вершини , , , . Далі вона повинна будувати граф згідно з послідовністю команд у текстовому файлі. Кожна команда має такий формат:
де і — номери вершин, а — це послідовність операцій, виконуваних справа наліво. Операція позначається одним із наступних символів:

Тут — масив вершин графа. Аргументом першої операції є вершина . Результат операцій та — це вершина, яка стає аргументом для всіх наступних операцій. Операції та повинні бути в крайньо лівій позиції. Наприклад, для команди дії такі:
index0 = 4, index1 = 0
x = f(v[0]) // вперед до вузла 3, x = 3 y = f(x) // вперед створює вузол (4), y = 4 k(y) // виводить ключ (4) V[4] = y // помістити вузол (4) у масив v
Вершина поміщається в масив лише командою . Спочатку містить вершини з ключами , , , : v[0]=0, v[1]=1, v[2]=2, v[3]=3.
Текстовий файл, що містить послідовність команд. У вхідних даних пробіли можуть траплятись довільно. Вхід завершується кінцем файлу.
Кожен вивід має здійснюватись у стандартний вихід з початку рядка. Порожніх рядків немає.
Зразок вхідних і вихідних даних наведено в таблиці нижче.

Приклад 1