CSES - Tree Coin Collecting I
  • Time limit: 1.00 s
  • Memory limit: 512 MB

You are given a tree with nn nodes. Some nodes contain a coin.

Your task is to answer qq queries of the form: what is the shortest length of a path from node aa to node bb that visits a node with a coin?

Input

The first line contains two integers nn and qq: the number of nodes and queries. The nodes are numbered 1,2,,n1, 2, \dots, n.

The second line contains nn integers c1,c2,,cnc_1, c_2,\dots, c_n. If ci=1c_i = 1, node ii has a coin. If ci=0c_i = 0, node ii doesn't have a coin. You can assume at least one node has a coin.

Then there are n1n-1 lines describing the edges. Each line contains two integers aa and bb: there is an edge between nodes aa and bb.

Finally, there are qq lines describing the queries. Each line contains two integers aa and bb: the start and end nodes.

Output

Print qq integers: the answers to the queries.

Constraints

  • 1n,q21051 \le n, q \le 2 \cdot 10^5
  • 1a,bn1 \le a, b \le n

Example

Input:

5 4
1 0 0 1 0
2 4
2 3
1 3
3 5
1 5
3 2
4 4
5 5

Output:

2
3
0
4