एल्गोरिदम और डेटा संरचनाएँ

क्या ग्राफ़ के दो वर्टिस तक पहुँचना संभव है?

आपको एक बिना दिशाओं वाला (undirected) ग्राफ़ दिया गया है, जिसमें v वर्टिस (शिखर) और e एज़ (धार) हैं। इसके अलावा, आपके पास q क्वेरी (प्रश्न) हैं, जिनमें यह जाँचना है कि क्या दो वर्टिस इस ग्राफ़ में एक-दूसरे तक पहुँचने योग्य हैं — अर्थात् क्या आप एक वर्टिस से दूसरे वर्टिस तक ग्राफ़ को पार करते हुए पहुँच सकते हैं।

इनपुट

इनपुट की पहली पंक्ति में दो पूर्णांक v (1 ≤ v ≤ 1000) और e (1 ≤ e ≤ 1000) होते हैं।

इसके बाद की e पंक्तियों में प्रत्येक पंक्ति में दो पूर्णांक v1, v2 (1 ≤ v1, v2 ≤ v) दिए जाते हैं, जो दर्शाते हैं कि v1 वर्टिस का संबंध v2 वर्टिस से है (और इसका उलटा भी)।

अगली पंक्ति में एक पूर्णांक q (1 ≤ q ≤ 100) होता है, जो क्वेरी की संख्या बताता है।

उसके बाद आने वाली q पंक्तियों में प्रत्येक में दो पूर्णांक q1, q2 (1 ≤ q1, q2 ≤ v) होते हैं, ये वही वर्टिस हैं जिनके बारे में आपको पूछे गए प्रश्न का जवाब देना है।

आउटपुट

प्रत्येक क्वेरी के लिए, यदि q1 वर्टिस से q2 वर्टिस तक पहुँचना संभव है, तो प्रोग्राम Yes प्रिंट करे अन्यथा No

उदाहरण

Input

Output

7 6
1 2
2 3
1 3
4 5
5 6
4 6
4
1 2
2 5
3 6
4 6

Yes
No
No
Yes

Constraints

Time limit: 1.6 seconds

Memory limit: 512 MB

Output limit: 1 MB