### ** uniquepath**

### Problem Statement

Snuke's mother gave Snuke an undirected graph consisting of `N` vertices numbered `0` to `N-1` and `M` edges.
This graph was connected and contained no parallel edges or self-loops.

One day, Snuke broke this graph.
Fortunately, he remembered `Q` clues about the graph.
The `i`-th clue (`0 ≤ i ≤ Q-1`) is represented as integers `A`_{i},B_{i},C_{i} and means the following:

- If
`C`_{i}=0: there was exactly one simple path (a path that never visits the same vertex twice) from Vertex `A`_{i} to `B`_{i}.
- If
`C`_{i}=1: there were two or more simple paths from Vertex `A`_{i} to `B`_{i}.

Snuke is not sure if his memory is correct, and worried whether there is a graph that matches these `Q` clues.
Determine if there exists a graph that matches Snuke's memory.

### Constraints

`2 ≤ N ≤ 10`^{5}
`N-1 ≤ M ≤ N × (N-1)/2`
`1 ≤ Q ≤ 10`^{5}
`0 ≤ A`_{i},B_{i} ≤ N-1
`A`_{i} ≠ B_{i}
`0 ≤ C`_{i} ≤ 1
- All values in input are integers.

### Input

Input is given from Standard Input in the following format:

`N` `M` `Q`
`A`_{0} `B`_{0} `C`_{0}
`A`_{1} `B`_{1} `C`_{1}
`
.
.
.
`
`A`_{Q-1} `B`_{Q-1} `C`_{Q-1}

### Output

If there exists a graph that matches Snuke's memory, print `Yes`

; otherwise, print `No`

.

### Sample Input 1

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

### Sample Output 1

Yes

For example, consider a graph with edges `(0,1),(1,2),(1,4),(2,3),(2,4)`. This graph matches the clues.

### Sample Input 2

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

### Sample Output 2

No

### Sample Input 3

10 9 9
7 6 0
4 5 1
9 7 0
2 9 0
2 3 0
4 1 0
8 0 0
9 1 0
3 0 0

### Sample Output 3

No