Score : $900$ points
You are given an undirected graph consisting of $N$ vertices and $M$ edges.
The vertices are numbered $1$ to $N$, and the edges are numbered $1$ to $M$.
In addition, each vertex has a label, A or B. The label of Vertex $i$ is $s_i$.
Edge $i$ bidirectionally connects vertex $a_i$ and $b_i$.
The phantom thief Nusook likes to choose some vertex as the startpoint and traverse an edge zero or more times. Today, he will make a string after traveling as above, by placing the labels of the visited vertices in the order visited, beginning from the startpoint.
For example, in a graph where Vertex $1$ has the label A and Vertex $2$ has the label B, if Nusook travels along the path $1 \rightarrow 2 \rightarrow 1 \rightarrow 2 \rightarrow 2$, the resulting string is ABABB.
Determine if Nusook can make all strings consisting of A and B.
A or B.Input is given from Standard Input in the following format:
$N$ $M$
$s$
$a_1$ $b_1$
$:$
$a_{M}$ $b_{M}$
If Nusook can make all strings consisting of A and B, print Yes; otherwise, print No.
2 3 AB 1 1 1 2 2 2
Yes
A and B.
4 3 ABAB 1 2 2 3 3 1
No
BB.
13 23 ABAAAABBBBAAB 7 1 10 6 1 11 2 10 2 8 2 11 11 12 8 3 7 12 11 2 13 13 11 9 4 1 9 7 9 6 8 13 8 6 4 10 8 7 4 3 2 1 8 12 6 9
Yes
13 17 BBABBBAABABBA 7 1 7 9 11 12 3 9 11 9 2 1 11 5 12 11 10 8 1 11 1 8 7 7 9 10 8 8 8 12 6 2 13 11
No