#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
const int M=N<<1;
int n,q,A,B;
bool inloop[N],vis[N];
int dis[N],fa[N],nxt[M],head[N],to[M],tot,disl[N],anc[N],ANC,inl[N];
string yes="Survive",no="Deception";
vector<int> a;
void add(int u,int v){
tot++;nxt[tot]=head[u];head[u]=tot;to[tot]=v;
}
void dfs(int u){
vis[u]=1;
for(int i=head[u];i;i=nxt[i]){
int v=to[i];
if(v==fa[u])continue;
if(vis[v]){
A=u;
B=v;
continue;
}
dis[v]=dis[u]+1;
vis[v]=1;
fa[v]=u;
dfs(v);
}
}
void dfs1(int u){
vis[u]=1;
for(int i=head[u];i;i=nxt[i]){
int v=to[i];
if(inloop[v])continue;
if(vis[v])continue;
disl[v]=disl[u]+1;
vis[v]=1;
anc[v]=ANC;
dfs1(v);
}
}
void buildloop(int u){
for(int i=head[u];i;i=nxt[i]){
int v=to[i];
if(vis[v]){
continue;
}
if(!inloop[v])continue;
vis[v]=1;
inl[v]=inl[u]+1;
buildloop(v);
}
}
int main(){
scanf("%d%d",&n,&q);
for(int i=1;i<=n;i++){
int u,v;
scanf("%d%d",&u,&v);
add(u,v);
add(v,u);
}
vis[1]=1;
dfs(1);
memset(vis,0,sizeof(vis));
int x=A;
while(x){
inloop[x]=1;
x=fa[x];
}
x=B;
while(x){
inloop[x]=1;
x=fa[x];
}
int cnt=0;
memset(fa,0,sizeof(fa));
int k=0;
for(int i=1;i<=n;i++){
if(inloop[i]){
k=i;
ANC=i;
dfs1(i);
cnt++;
}
}
memset(vis,0,sizeof(vis));
vis[k]=1;
buildloop(k);
while(q--){
int x,y;
scanf("%d%d",&x,&y);
if(inloop[x]&&inloop[y]){
cout<<yes<<endl;
}else if(inloop[x]&&!inloop[y]){
cout<<yes<<endl;
}else if(!inloop[x]&&inloop[y]){
int dx=disl[x],dy=min(abs(inl[anc[x]]-inl[y]),cnt-abs(inl[anc[x]]-inl[y]));
if(dx>=dy){
cout<<no<<endl;
}else{
cout<<yes<<endl;
}
}else{
int dx=disl[x],dy=disl[y];
int d=min(abs(inl[anc[x]]-inl[anc[y]]),cnt-abs(inl[anc[x]]-inl[anc[y]]));
dy+=d;
if(dx>=dy){
cout<<no<<endl;
}else cout<<yes<<endl;
}
}
return 0;
}