Codeforces Round #264 (Div. 2)E(裸的树询问)

来源:互联网 发布:js中给文本框赋值 编辑:程序博客网 时间:2024/05/16 18:06
E. Caisa and Tree
time limit per test
10 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

Caisa is now at home and his son has a simple task for him.

Given a rooted tree with n vertices, numbered from 1 to n (vertex 1 is the root). Each vertex of the tree has a value. You should answer qqueries. Each query is one of the following:

  • Format of the query is "1 v". Let's write out the sequence of vertices along the path from the root to vertex vu1, u2, ..., uk (u1 = 1; uk = v). You need to output such a vertex ui that gcd(value of ui, value of v) > 1 and i < k. If there are several possible vertices ui pick the one with maximum value of i. If there is no such vertex output -1.
  • Format of the query is "2 v w". You must change the value of vertex v to w.

You are given all the queries, help Caisa to solve the problem.

Input

The first line contains two space-separated integers nq (1 ≤ n, q ≤ 105).

The second line contains n integers a1, a2, ..., an (1 ≤ ai ≤ 2·106), where ai represent the value of node i.

Each of the next n - 1 lines contains two integers xi and yi (1 ≤ xi, yi ≤ nxi ≠ yi), denoting the edge of the tree between vertices xiand yi.

Each of the next q lines contains a query in the format that is given above. For each query the following inequalities hold: 1 ≤ v ≤ n and1 ≤ w ≤ 2·106Note that: there are no more than 50 queries that changes the value of a vertex.

Output

For each query of the first type output the result of the query.

Sample test(s)
input
4 610 8 4 31 22 33 41 11 21 31 42 1 91 4
output
-112-11

题意:两种操作 RT

思路:纯暴力真的能过,也就900多MS,CF好逗,sad~

0 0
原创粉丝点击