#include<iostream>
using namespace std;
bool Map[100][100],Vis[100];
int d[100],f[100],n,time;
void DFS(int x)
{
Vis[x]=1;
d[x]=time;
for(int i=0;i<n;i++)
{
if(Map[x][i]&&!Vis[i])
{
Map[x][i]=0;
time++;
DFS(i);
}
}
time++;
f[x]=time;
return;
}
void Solve()
{
int m,s,t;
cin>>n>>m;
memset(Map,0,sizeof(Map));
memset(Vis,0,sizeof(Vis));
for(int i=0;i<m;i++)
{
cin>>s>>t;
Map[s][t]=1;
}
DFS(0);
cout<<"Now let's check"<<endl;
while(cin>>s>>t)
{
if(d[s]<d[t]&&f[s]>f[t])
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}
int main()
{
time=0;
Solve();
return 0;
}
using namespace std;
bool Map[100][100],Vis[100];
int d[100],f[100],n,time;
void DFS(int x)
{
Vis[x]=1;
d[x]=time;
for(int i=0;i<n;i++)
{
if(Map[x][i]&&!Vis[i])
{
Map[x][i]=0;
time++;
DFS(i);
}
}
time++;
f[x]=time;
return;
}
void Solve()
{
int m,s,t;
cin>>n>>m;
memset(Map,0,sizeof(Map));
memset(Vis,0,sizeof(Vis));
for(int i=0;i<m;i++)
{
cin>>s>>t;
Map[s][t]=1;
}
DFS(0);
cout<<"Now let's check"<<endl;
while(cin>>s>>t)
{
if(d[s]<d[t]&&f[s]>f[t])
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}
int main()
{
time=0;
Solve();
return 0;
}