Фермер Джон помітив, що його корови часто сваряться, коли знаходяться занадто близько одна до одної, тому він хоче побудувати ряд нових корівників, щоб розселити їх подалі.
Кожного разу, коли Фермер Джон будує новий корівник, він з'єднує його не більш як однією двосторонньою стежкою з одним із уже існуючих корівників. Щоб переконатися, що корови розселені достатньо далеко одна від одної, він іноді хоче визначити відстань від заданого корівника до найвіддаленішого корівника, досяжного з нього (відстань між двома корівниками — це кількість стежок, які потрібно пройти, щоб дістатися від одного корівника до іншого).
Фермер Джон зробить загалом запитів, кожен з яких є або запитом на побудову, або запитом відстані. У запиті на побудову Фермер Джон будує корівник і з'єднує його не більш як з одним раніше побудованим корівником. У запиті відстані Фермер Джон запитує відстань від заданого корівника до найвіддаленішого корівника, досяжного з нього за послідовністю стежок. Гарантується, що запитуваний корівник уже побудований. Допоможіть Фермеру Джону відповісти на всі запити.
Перший рядок містить ціле число q~(1 \le q \le 10^5) — кількість запитів. Кожен з наступних рядків містить один запит вигляду B p або Q k. Запит B p означає, що будується новий корівник, який з'єднується з корівником ; якщо p = -1, то новий корівник не з'єднується з жодним іншим корівником, інакше — номер уже побудованого корівника. Запит Q k вимагає знайти відстань від корівника до найвіддаленішого корівника, досяжного з нього. Корівники нумеруються з у порядку побудови: перший побудований корівник має номер , другий — номер і так далі.
Для кожного запиту відстані виведіть відповідь в окремому рядку. Зауважте, що для корівника, не з'єднаного з жодним іншим корівником, відповідь дорівнює .
Вхідні дані з прикладу відповідають такій мережі корівників:
(1)
\
(2)---(4)
/
(3)У запиті будується корівник . У запиті запитується відстань від корівника до найвіддаленішого досяжного корівника. Оскільки корівник не з'єднаний з жодним іншим корівником, відповідь дорівнює . У запиті будується корівник , який з'єднується з корівником . У запиті будується корівник , який з'єднується з корівником . У запиті запитується відстань від корівника до найвіддаленішого досяжного корівника. У цьому випадку найвіддаленішим є корівник , що знаходиться на відстані . У запиті будується корівник , який з'єднується з корівником . У запиті запитується відстань від корівника до найвіддаленішого досяжного корівника. Усі три корівники , і знаходяться від нього на відстані , тому відповідь дорівнює .
Приклад 1