1604 - Bipartite Graph

Time Limit : 5 Second

Memory Limit : 64 MB

Submission: 75

Solved: 32

Description

Bipartite graph (or bigraph, http://en.wikipedia.org/wiki/Bipartite_graph) is a graph whose vertices can be divided into two disjoint sets U and V such that every edge connects a vertex in A to one in V; there are no edges connect two vertices both in U and V.
In this problem, you need to simulate a Bipartite Graph Judging Machine(BGJM). The BGJM can accept two kinds of operations:
1.       ADD X1 X2  It means we add a bidirectional edge (X1X2) to the graph.
2.       CHECK     Judge the graph, If the graph is Bipartite Graph, print “YES”. Otherwise, print “NO”.
Initially, the graph contains N vertices and no edges, of course, it’s a bigraph.

Input

Multiple test cases, for each test case:
The first line contain two numbers N and Q. It means there are N vertices in the graph and you need to simulate Q operations.
1 <= N, Q <= 3 * 10^5
Next Q lines each line contains an operation. The format is mentioned above.

Output

For each “CHECK” operation, you need to print the result in a line.

sample input
3 6
ADD 1 2
CHECK
ADD 2 3
CHECK
ADD 1 3
CHECK
sample output
YES
YES
NO
hint
source
xiaoyang
© 2015 HUST ACMICPC TEAM. All Right Reserved.