#include <cstdio> #include <vector> #define Nmax 100005 using namespace std; int start[Nmax],stop[Nmax],len; vector <int> L[Nmax]; inline void Dfs(int nod, int tata) { start[nod]=++len; vector <int> ::iterator it; for(it=L[nod].begin();it!=L[nod].end();++it) if(*it!=tata) Dfs(*it,nod); stop[nod]=++len; } int main() { int x,y,i,m,n,ok; freopen ("maimute.in","r",stdin); freopen ("maimute.out","w",stdout); scanf("%d", &n); for(i=1;i<n;++i) { scanf("%d%d", &x,&y); L[x].push_back(y); L[y].push_back(x); } Dfs(1,0); scanf("%d", &m); for(i=1;i<=m;++i) { scanf("%d%d", &x,&y); ok=0; if(start[x]<start[y] && stop[x]>start[y]) ok=1; if(start[y]<start[x] && stop[y]>start[x]) ok=1; if(ok) printf("DA\n"); else printf("NU\n"); } return 0; }