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
|