1 #include<bits/stdc++.h>
2 #define ll long long
3 using namespace std;
4 const int N=100010,mod=1000000007;
5 int n,q,k,m,r,a[N],fa[N][17],dep[N],hd[N],o=1,bin[20],h[N],f[N][310],st[N],ed[N],c[N],vis[N],idx;
6 struct Edge{int v,nt;}E[N<<1];
7 char gc(){
8 static char*p1,*p2,s[1000000];
9 if(p1==p2)p2=(p1=s)+fread(s,1,1000000,stdin);
10 return(p1==p2)?EOF:*p1++;
11 }
12 int rd(){
13 int x=0;char c=gc();
14 while(c<'0'||c>'9')c=gc();
15 while(c>='0'&&c<='9')x=(x<<1)+(x<<3)+c-'0',c=gc();
16 return x;
17 }
18 void adde(int u,int v){
19 E[o]=(Edge){v,hd[u]};hd[u]=o++;
20 E[o]=(Edge){u,hd[v]};hd[v]=o++;
21 }
22 void dfs(int u,int F){
23 st[u]=++idx;
24 fa[u][0]=F;
25 dep[u]=dep[F]+1;
26 for(int i=1;bin[i]<dep[u];++i)fa[u][i]=fa[fa[u][i-1]][i-1];
27 for(int i=hd[u];i;i=E[i].nt){
28 int v=E[i].v;
29 if(v==F)continue;
30 dfs(v,u);
31 }
32 ed[u]=idx;
33 }
34 int lca(int u,int v){
35 if(dep[u]<dep[v])swap(u,v);
36 for(int i=0;i<17;++i)if(bin[i]&(dep[u]-dep[v]))u=fa[u][i];
37 if(u==v)return u;
38 for(int i=16;~i;--i)if(fa[u][i]!=fa[v][i])u=fa[u][i],v=fa[v][i];
39 return fa[u][0];
40 }
41 void add(int x,int y){for(;x<=n;x+=x&-x)c[x]+=y;}
42 int ask(int x){int re=0;for(;x;x-=x&-x)re+=c[x];return re;}
43 void update(int u,int x){
44 vis[u]+=x;
45 add(st[u],x);
46 add(ed[u]+1,-x);
47 }
48 int query(int u){
49 int t=lca(u,r);
50 return ask(st[u])+ask(st[r])-ask(st[t])*2+vis[t];
51 }
52 int main(){
53 #ifndef ONLINE_JUDGE
54 freopen("E.in","r",stdin);
55 freopen("E.out","w",stdout);
56 #endif
57 n=rd();q=rd();
58 for(int i=bin[0]=1;i<=17;++i)bin[i]=bin[i-1]<<1;
59 for(int i=1;i<n;++i)adde(rd(),rd());
60 dfs(1,0);
61 f[0][0]=1;
62 for(int i=1;i<=q;++i){
63 k=rd();m=rd();r=rd();
64 for(int j=1;j<=k;++j)a[j]=rd(),update(a[j],1);
65 for(int j=1;j<=k;++j)h[j]=query(a[j])-1;
66 sort(h+1,h+k+1);
67 for(int j=1;j<=k;++j)
68 for(int l=1;l<=m;++l){
69 f[j][l] = ((ll)f[j-1][l]*max(0,l-h[j])%mod+f[j-1][l-1])%mod;
70 }
71 int ans=0;
72 for(int l=0;l<=m;++l)ans=(ans+f[k][l])%mod;
73 printf("%d
",ans);
74 for(int j=1;j<=k;++j)update(a[j],-1);
75 }
76 return 0;
77 }