#include <bits/stdc++.h>
#define ll long long
#define sti string
#define bit(n,i) ((n>>i) &1)
#define itachi ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define maxn 2000005
#define fi first
#define se second
using namespace std;
struct Query {
int l,r,id;
bool operator < (const Query &other) const {
return r < other.r;
}
};
int q;
vector<Query> que;
const int block=250;
int n,m;
int u[maxn],v[maxn];
int ans[maxn];
struct DSU {
int n;
vector<int> sz,par;
vector<pair<int,int>> stk;
int comp;
DSU(int _n=0){
n=_n;
sz.assign(n+5,0);
par.assign(n+5,0);
}
void reset(){
stk.clear();
comp=n;
for(int i=1;i<=n;i++){
sz[i]=1;
par[i]=i;
}
}
int find_par(int u){
return (par[u]==u ? u : find_par(par[u]));
}
void join(int u,int v){
u=find_par(u);
v=find_par(v);
if(u==v) {
stk.push_back({-1,-1});
return ;
}
if(sz[u] < sz[v]) swap(u,v);
stk.push_back({v,sz[u]});
par[v]=u;
sz[u]+=sz[v];
comp--;
}
int roll(){
return stk.size();
}
void rollback(int Time){
while(stk.size() > Time){
pair<int,int> top=stk.back();
int v=top.fi;
int Size=top.se;
stk.pop_back();
if(v==-1) continue;
int u=par[v];
sz[u]=Size;
par[v]=v;
comp++;
}
}
};
int main()
{
itachi
//freopen("graph.inp","r",stdin);
//freopen("graph.out","w",stdout);
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>u[i]>>v[i];
}
cin>>q;
for(int i=0;i<q;i++){
int l,r;
cin>>l>>r;
que.push_back({l,r,i});
}
vector<vector<Query>> blocks((m+block-1)/block);
for(auto &tmp : que){
blocks[(tmp.l-1)/block].push_back(tmp);
}
DSU dsu(n);
for(auto &vec : blocks){
if(vec.empty()) continue;
sort(vec.begin(),vec.end());
int L=vec[0].l;
int blockR = min((L-1)/block*block + block, m);
int R = blockR;
dsu.reset();
for(auto &tmp : vec){
while(R < tmp.r){
R++;
dsu.join(u[R],v[R]);
}
int turn=dsu.roll();
for(int i=tmp.l;i<=blockR;i++){
dsu.join(u[i],v[i]);
}
ans[tmp.id]=(dsu.comp==1);
dsu.rollback(turn);
}
}
for(int i=0;i<q;i++) cout<<(ans[i] ? "Yes" : "No")<<'\n';
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgc3RpIHN0cmluZwojZGVmaW5lIGJpdChuLGkpICgobj4+aSkgJjEpCiNkZWZpbmUgaXRhY2hpIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKI2RlZmluZSBtYXhuIDIwMDAwMDUKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAoKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgUXVlcnkgewogICBpbnQgbCxyLGlkOwogICBib29sIG9wZXJhdG9yIDwgKGNvbnN0IFF1ZXJ5ICZvdGhlcikgY29uc3QgewogICAgICByZXR1cm4gciA8IG90aGVyLnI7CiAgIH0KfTsKCmludCBxOwp2ZWN0b3I8UXVlcnk+IHF1ZTsKY29uc3QgaW50IGJsb2NrPTI1MDsKaW50IG4sbTsKaW50IHVbbWF4bl0sdlttYXhuXTsKaW50IGFuc1ttYXhuXTsKCnN0cnVjdCBEU1UgewogICBpbnQgbjsKICAgdmVjdG9yPGludD4gc3oscGFyOwogICB2ZWN0b3I8cGFpcjxpbnQsaW50Pj4gc3RrOwogICBpbnQgY29tcDsKCiAgIERTVShpbnQgX249MCl7CiAgICAgICBuPV9uOwogICAgICAgc3ouYXNzaWduKG4rNSwwKTsKICAgICAgIHBhci5hc3NpZ24obis1LDApOwogICB9CiAgIHZvaWQgcmVzZXQoKXsKICAgICAgc3RrLmNsZWFyKCk7CiAgICAgIGNvbXA9bjsKICAgICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgIHN6W2ldPTE7CiAgICAgICAgcGFyW2ldPWk7CiAgICAgIH0KICAgfQogICBpbnQgZmluZF9wYXIoaW50IHUpewogICAgICByZXR1cm4gKHBhclt1XT09dSA/IHUgOiBmaW5kX3BhcihwYXJbdV0pKTsKICAgfQogICB2b2lkIGpvaW4oaW50IHUsaW50IHYpewogICAgIHU9ZmluZF9wYXIodSk7CiAgICAgdj1maW5kX3Bhcih2KTsKICAgICBpZih1PT12KSB7CiAgICAgICAgc3RrLnB1c2hfYmFjayh7LTEsLTF9KTsKICAgICAgICByZXR1cm4gOwogICAgIH0KICAgICBpZihzelt1XSA8IHN6W3ZdKSBzd2FwKHUsdik7CiAgICAgc3RrLnB1c2hfYmFjayh7dixzelt1XX0pOwogICAgIHBhclt2XT11OwogICAgIHN6W3VdKz1zelt2XTsKICAgICBjb21wLS07CiAgIH0KICAgaW50IHJvbGwoKXsKICAgICByZXR1cm4gc3RrLnNpemUoKTsKICAgfQoKICAgdm9pZCByb2xsYmFjayhpbnQgVGltZSl7CiAgICAgd2hpbGUoc3RrLnNpemUoKSA+IFRpbWUpewogICAgICAgIHBhaXI8aW50LGludD4gdG9wPXN0ay5iYWNrKCk7CiAgICAgICAgaW50IHY9dG9wLmZpOwogICAgICAgIGludCBTaXplPXRvcC5zZTsKICAgICAgICBzdGsucG9wX2JhY2soKTsKICAgICAgICBpZih2PT0tMSkgY29udGludWU7CiAgICAgICAgaW50IHU9cGFyW3ZdOwogICAgICAgIHN6W3VdPVNpemU7CiAgICAgICAgcGFyW3ZdPXY7CiAgICAgICAgY29tcCsrOwogICAgIH0KICAgfQp9OwoKCmludCBtYWluKCkKewogICAgaXRhY2hpCiAgICAvL2ZyZW9wZW4oImdyYXBoLmlucCIsInIiLHN0ZGluKTsKICAgIC8vZnJlb3BlbigiZ3JhcGgub3V0IiwidyIsc3Rkb3V0KTsKICAgIGNpbj4+bj4+bTsKICAgIGZvcihpbnQgaT0xO2k8PW07aSsrKXsKICAgICAgICBjaW4+PnVbaV0+PnZbaV07CiAgICB9CiAgICBjaW4+PnE7CiAgICBmb3IoaW50IGk9MDtpPHE7aSsrKXsKICAgICAgICBpbnQgbCxyOwogICAgICAgIGNpbj4+bD4+cjsKICAgICAgICBxdWUucHVzaF9iYWNrKHtsLHIsaX0pOwogICAgfQogICAgdmVjdG9yPHZlY3RvcjxRdWVyeT4+IGJsb2NrcygobStibG9jay0xKS9ibG9jayk7CiAgICBmb3IoYXV0byAmdG1wIDogcXVlKXsKICAgICAgICBibG9ja3NbKHRtcC5sLTEpL2Jsb2NrXS5wdXNoX2JhY2sodG1wKTsKICAgIH0KICAgIERTVSBkc3Uobik7CiAgICBmb3IoYXV0byAmdmVjIDogYmxvY2tzKXsKICAgICAgICBpZih2ZWMuZW1wdHkoKSkgY29udGludWU7CiAgICAgICAgc29ydCh2ZWMuYmVnaW4oKSx2ZWMuZW5kKCkpOwogICAgICAgIGludCBMPXZlY1swXS5sOwogICAgICAgIGludCBibG9ja1IgPSBtaW4oKEwtMSkvYmxvY2sqYmxvY2sgKyBibG9jaywgbSk7CiAgICAgICAgaW50IFIgPSBibG9ja1I7CiAgICAgICAgZHN1LnJlc2V0KCk7CiAgICAgICAgZm9yKGF1dG8gJnRtcCA6IHZlYyl7CiAgICAgICAgICAgIHdoaWxlKFIgPCB0bXAucil7CiAgICAgICAgICAgICAgICBSKys7CiAgICAgICAgICAgICAgICBkc3Uuam9pbih1W1JdLHZbUl0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGludCB0dXJuPWRzdS5yb2xsKCk7CiAgICAgICAgICAgIGZvcihpbnQgaT10bXAubDtpPD1ibG9ja1I7aSsrKXsKICAgICAgICAgICAgICAgIGRzdS5qb2luKHVbaV0sdltpXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYW5zW3RtcC5pZF09KGRzdS5jb21wPT0xKTsKICAgICAgICAgICAgZHN1LnJvbGxiYWNrKHR1cm4pOwogICAgICAgIH0KICAgIH0KICAgIGZvcihpbnQgaT0wO2k8cTtpKyspIGNvdXQ8PChhbnNbaV0gPyAiWWVzIiA6ICJObyIpPDwnXG4nOwogICAgcmV0dXJuIDA7Cn0K