We have a connected undirected graph with $N$ vertices and $M$ edges. Edge $i$ in this graph ($1 \leq i \leq M$) connects Vertex $U_i$ and Vertex $V_i$ bidirectionally. We are additionally given $N$ integers $D_1, D_2, ..., D_N$.
Determine whether the conditions below can be satisfied by assigning a color - white or black - to each vertex and an integer weight between $1$ and $10^9$ (inclusive) to each edge in this graph. If the answer is yes, find one such assignment of colors and integers, too.
* There is at least one vertex assigned white and at least one vertex assigned black.
* For each vertex $v$ ($1 \leq v \leq N$), the following holds.
* The minimum cost to travel from Vertex $v$ to a vertex whose color assigned is different from that of Vertex $v$ by traversing the edges is equal to $D_v$.
Here, the cost of traversing the edges is the sum of the weights of the edges traversed.
## Constraints
* $2 \leq N \leq 100,000$
* $1 \leq M \leq 200,000$
* $1 \leq D_i \leq 10^9$
* $1 \leq U_i, V_i \leq N$
* The given graph is connected and has no self-loops or multiple edges.
* All values in input are integers.
## Input
Input is given from Standard Input in the following format:
$N$ $M$
$D_1$ $D_2$ $...$ $D_N$
$U_1$ $V_1$
$U_2$ $V_2$
$\vdots$
$U_M$ $V_M$
[samples]