Andrew and William are playing a game on an undirected graph with
vertices, numbered from 1 to
. Each vertex has a binary label, either 0 or 1. During the game, Andrew selects two vertices
and
(
), and asks William if there exists a palindrome path from
to
. A palindrome path is defined as a path where the sequence of vertex labels recorded from
to
forms a palindrome. The path does not have to be a simple path; William can visit the same vertex multiple times.
Write a program to help William determine if such a palindrome path exists for each query.
Input Specification
The first line includes three integers,
,
and
(
), the number of vertices, the number of edges and the number of queries made by Andrew.
The second line includes a binary string with length
, where the
character is the label of vertex
.
Each of the following
lines includes two integers,
and
, an edge between
and
.
Each of the following
lines includes two integers,
and
, a query to ask if there exists a palindrome path from
to
.
Output Specification
For each query, print out YES
if there exists a palindrome path, otherwise NO
.
Constraints
Subtask |
Points |
Additional constraints |
 |
 |
 |
 |
 |
,  |
 |
 |
No additional constraints |
Sample Input
Copy
5 4 2
11101
4 5
1 3
4 2
2 5
1 5
1 3
Sample Output
Copy
NO
YES
Comments