Caisa сейчас дома и его сын придумал для него простую задачку.
Задано корневое дерево, состоящее из n вершин, пронумерованных от 1 до n (вершина 1 — корень дерева). В каждой вершине записано некоторое значение. Требуется ответить на q запросов. Каждый запрос является одним из следующих:
- Формат запроса «1 v». Выпишем последовательность вершин вдоль пути от корня до вершины v: u1, u2, ..., uk (u1 = 1; uk = v). Выведите такую вершину ui, что gcd(значение вершины ui, значение вершины v) > 1 и i < k. Если существует несколько таких вершин, выведите вершину с максимальным значением i. Если таких вершин вовсе нет, выведите -1.
- Формат запроса «2 v w». Нужно изменить значение, записанное в вершине v, на w.
Вам заданы все запросы, помогите Caisa справиться с этой задачей.
Выходные данные
Для каждого запроса первого типа выведите ответ на него.
Примечание
Запись gcd(x, y) обозначает наибольший общий делитель целых чисел x и y.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
4 6 10 8 4 3 1 2 2 3 3 4 1 1 1 2 1 3 1 4 2 1 9 1 4
|
-1
1
2
-1
1
|