While changing the decoration, there are always new modes!
"Radzinka Dubramil Vycheslavovich"

For example, when Quera finally decided after a long time to change the decoration of the company, the spirit of sabotage was greatly intensified in the Quera team; Because the workers came and started to destroy the walls of the company. Walls with important writings on them...

Then Quera's team went to Cafe Graf to think calmly about the polish of their vandalism, away from these destroyed walls. In Cafe Graph, the only method that came to the team's mind was to destroy a graph! they
n
2
n
2
 They made heads and put them in
n
n rows
n
They put n. (to the top in the row
y
Yam from the bottom and the column
x
10th from the left, Ras
(
x
,
y
)
We say (x,y).) Then they drew edges between each vertex and its upper, lower, left and right vertices (if any). (In total
2
n
(
n
-
1
)
2n(n−1) edges were drawn.) After that, they started to destroy the edges of the graph; They picked and destroyed the manes one by one. After several rounds of destruction, the team thought about analyzing its performance. (After all, it's a startup job anymore...) They consider a destruction bad if, after removing that edge, the number of connected components of the graph does not change. A fraudulent broker has introduced you to Quera as a graph destruction analyzer and you have to tell after each destruction whether it was bad or not by taking the order of the destructions.

input
In the first line, enter two natural numbers
n
n and
k
k has come that
n
n specifies the number of rows and columns consisting of graph vertices and
k
k represents the number of destructions done.

Then the input comes in encrypted form; This is to force you to get the result of the destructions in order of input. in such a way that in each of
k
k next input line, an edge with two numbers
x
x and
y
y and character
d
i
r
dir have arrived. The direction of the edge is equal to E, which means the edge described from the vertex
(
x
,
y
)
(x,y) to the vertex
(
x
+
1
,
y
)
(x+1,y) is Otherwise, the direction of the edge is equal to N, which means the edge described by
(
x
,
y
)
(x,y) to the vertex
(
x
,
y
+
1
)
(x,y+1) is ** Edge direction according to the input character
d
i
r
dir and the result of previous destruction is determined; ** If the previous edge destruction was not a bad destruction, the direction of the new destructive edge with the value
d
i
r
dir is different, otherwise the direction of the destructive edge is equal to the value
d
i
r
dir is The direction of the first edge with the value
d
i
r
dir is equal to (For more clarity, pay attention to the example.)

It is guaranteed that the edge after decoding an edge is correct and the row and column numbers of both end vertices are between 1 and
n
n will be; But this may not be true before decryption. It is guaranteed that no edge is destroyed twice.

1
≤
x
,
y
≤
n
≤
2

000
1≤x, y≤n≤2000

1
≤
k
≤
2

000

000
1≤k≤2 000 000

output
in
k
k line, write the bad result of each destruction; If a destruction was bad, print Yes and if it was not bad, print No.

Example
Sample entry 1
3 3
1 1 E
1 1 N
2 1 N
Plain text
Sample output 1
Yes
No
Yes
Plain text
Degraded edges in equal order
(
1
,
1
)
(1,1) with direction E,
(
1
,
1
)
(1,1) with direction N and
(
2
,
1
)
(2,1) are with the E direction, whose destruction occurs according to these forms:  c++