Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

No tag edit access

The problem statement has recently been changed. View the changes.

×
A. Graph

time limit per test

1 secondmemory limit per test

256 megabytesinput

standard inputoutput

standard outputYou are given an undirected graph where each edge has one of two colors: black or red.

Your task is to assign a real number to each node so that:

- for each black edge the sum of values at its endpoints is $$$1$$$;
- for each red edge the sum of values at its endpoints is $$$2$$$;
- the sum of the absolute values of all assigned numbers is the smallest possible.

Otherwise, if it is not possible, report that there is no feasible assignment of the numbers.

Input

The first line contains two integers $$$N$$$ ($$$1 \leq N \leq 100\,000$$$) and $$$M$$$ ($$$0 \leq M \leq 200\,000$$$): the number of nodes and the number of edges, respectively. The nodes are numbered by consecutive integers: $$$1, 2, \ldots, N$$$.

The next $$$M$$$ lines describe the edges. Each line contains three integers $$$a$$$, $$$b$$$ and $$$c$$$ denoting that there is an edge between nodes $$$a$$$ and $$$b$$$ ($$$1 \leq a, b \leq N$$$) with color $$$c$$$ ($$$1$$$ denotes black, $$$2$$$ denotes red).

Output

If there is a solution, the first line should contain the word "YES" and the second line should contain $$$N$$$ space-separated numbers. For each $$$i$$$ ($$$1 \le i \le N$$$), the $$$i$$$-th number should be the number assigned to the node $$$i$$$.

Output should be such that:

- the sum of the numbers at the endpoints of each edge differs from the precise value by less than $$$10^{-6}$$$;
- the sum of the absolute values of all assigned numbers differs from the smallest possible by less than $$$10^{-6}$$$.

If there are several valid solutions, output any of them.

If there is no solution, the only line should contain the word "NO".

Scoring

Subtasks:

- (5 points) $$$N \leq 5$$$, $$$M \leq 14$$$
- (12 points) $$$N \leq 100$$$
- (17 points) $$$N \leq 1000$$$
- (24 points) $$$N \leq 10\,000$$$
- (42 points) No further constraints

Examples

Input

4 4 1 2 1 2 3 2 1 3 2 3 4 1

Output

YES 0.5 0.5 1.5 -0.5

Input

2 1 1 2 1

Output

YES 0.3 0.7

Input

3 2 1 2 2 2 3 2

Output

YES 0 2 0

Input

3 4 1 2 2 2 2 1 2 1 1 1 2 2

Output

NO

Note

Note that in the second example the solution is not unique.

Codeforces (c) Copyright 2010-2020 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Oct/01/2020 01:30:09 (g1).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|