Job or joy
How much time can you solve problems non-stop? Sometimes you want to rest, but now is just not the time. It is necessary to collect your thoughts in a fist and snatch victory from your rivals.
This problem is designed to separate the merely good teams from the Champions, those who expect to get into the top ten from those who do not intend to take a place below the first. Since the number of enemies who are going to find the author of this tightly introduction to express what they think about him, grows, let’s get down to business. An undirected graph is given. Some queries follow. A query is a pair of vertices.
For each query, find out if there exist at least three edge-disjoint paths from the first vertex to the second.
Input
In first line there are two integers n and k (1 ≤ n, k ≤ 100000) — number of vertices and edges in the graph. The next k lines describe edges by pair of connected vertices a, b (1 ≤ a, b ≤ n). Edges connect different vertices and there is at most one edge between any two vertices. In the next line, there is number of queries q (0 ≤ q ≤ 100000). Each of the next q lines contains two integers a, b (a 6 = b, 1 ≤ a, b ≤ n) — pair of vertices for which it is required to find out if there exist three distinct paths between them such that none of them share an edge.
Output
For each query, output a single line with either Yes if such three paths exist, or No otherwise.