#include <bits/stdc++.h>

using namespace std;

using ll = long long;
using pii = pair<int, int>;

const int N = 1e5 + 5;
const int mod = 1e9 + 7;

int n, k;
vector<int> hav[N];

int main() {
	freopen("traverse.in", "r", stdin);
	freopen("traverse.out", "w", stdout);
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int tc, tt;
	cin >> tc >> tt;
	while (tt--) {
		cin >> n >> k;
		for (int i = 1, u, v; i < n; i++) {
			cin >> u >> v;
			hav[u].emplace_back(i);
			hav[v].emplace_back(i);
		}
		
		if (tc == 18) {
//			int ans = 0;
			for (int i = 1, id; i <= k; i++) {
				cin >> id;
//				if (id == 1 || id == n - 1) ans = (ans + 1) % mod;
//				else ans = (ans + 2) % mod;
			}
			cout << "1\n";
			continue; 
		}
//		else if (19 <= tc && tc <= 21) {
//			int fac = 1;
//			for (int i = 1; i <= n - 2; i++)
//				fac = 1ll * fac * i % mod;
////			cout << "bugging: " << fac << "\n";
//			int ans = 0;
//			for (int i = 1, id; i <= k; i++) {
//				cin >> id;
//				ans = (ans + fac) % mod;
//			}
//			cout << ans << "\n";
//		}

//		for (int i = 1; i <= n; i++) {
//			for (auto u: hav[i])
//				for (auto v: hav[i])
//					if (u != v) {
//						
//					}
//		}
		
//		int ans = 0;
//		for (int i = 1, id; i <= k; i++) {
//			cin >> id;
//			ans = (ans + dfs(id, id)) % mod;
//		}
//		
//		cout << ans << "\n";
	}
	return 0;
}
/*
248941163
*/ 
