Good Graph

题意翻译

**题目描述** 有一含 $n$ 个点的带权无向图。 一个**简单环**被定义为图上一没有重复顶点的环。令这样的一个环的权重为它环上所有边的权值的异或和。 若一个图中全部**简单环**的权重都是 $1$ ,那么我们称这个图为**好图**,而一个图若不是**好图**,那么这个图则是**坏图**。 最开始,图是空的。接着会有 $q$ 个询问。每个询问为以下格式 - $u$ $v$ $x$ — 若不会使图变成坏图,则在点 $u$ 与点 $v$ 间加一条权值为 $x$ 的边。 对于每一个询问输出到底加不加这条边。

题目描述

You have an undirected graph consisting of $ n $ vertices with weighted edges. A simple cycle is a cycle of the graph without repeated vertices. Let the weight of the cycle be the [XOR](https://en.wikipedia.org/wiki/Bitwise_operation#XOR) of weights of edges it consists of. Let's say the graph is good if all its simple cycles have weight $ 1 $ . A graph is bad if it's not good. Initially, the graph is empty. Then $ q $ queries follow. Each query has the next type: - $ u $ $ v $ $ x $ — add edge between vertices $ u $ and $ v $ of weight $ x $ if it doesn't make the graph bad. For each query print, was the edge added or not.

输入输出格式

输入格式


The first line contains two integers $ n $ and $ q $ ( $ 3 \le n \le 3 \cdot 10^5 $ ; $ 1 \le q \le 5 \cdot 10^5 $ ) — the number of vertices and queries. Next $ q $ lines contain queries — one per line. Each query contains three integers $ u $ , $ v $ and $ x $ ( $ 1 \le u, v \le n $ ; $ u \neq v $ ; $ 0 \le x \le 1 $ ) — the vertices of the edge and its weight. It's guaranteed that there are no multiple edges in the input.

输出格式


For each query, print YES if the edge was added to the graph, or NO otherwise (both case-insensitive).

输入输出样例

输入样例 #1

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

输出样例 #1

YES
YES
YES
YES
YES
NO
YES
YES
NO
YES
YES
NO