# include <bits/stdc++.h>
# define int long long
using namespace std ;
int c , t , n , k ;
const int M = 1e9 + 7 ;
signed main ()
{
	freopen ( "traverse.in" , "r" , stdin ) ;
	freopen ( "traverse.out" , "w" , stdout ) ;
	ios :: sync_with_stdio ( 0 ) ;
	cin . tie ( 0 ) ;
	cout . tie ( 0 ) ;
	cin >> c >> t ;
	if ( c == 18 )
	{
		while ( t -- )
		{
			cin >> n >> k ;
			for ( int i = 1 , u , v ; i < n ; i ++ )
				cin >> u >> v ;
			for ( int i = 1 , e ; i <= k ; i ++ )
				cin >> e ;
			cout << 1 << '\n' ;
		}
		return 0 ;
	}
	while ( t -- )
	{
		cin >> n >> k ;
		for ( int i = 1 , u , v ; i < n ; i ++ )
			cin >> u >> v ;
		for ( int i = 1 , e ; i <= k ; i ++ )
			cin >> e ;
		int ans = 1 , mns ;
		for ( int i = 1 ; i < n ; i ++ )
			ans = ans * i % M ;
		mns = n - 2 ;
		int lans = ans ;
		for ( int i = 2 ; i <= k ; i ++ )
		{
			ans = ( ans - mns + M ) % M ;
			lans = ( lans + ans ) % M ;
		}
		cout << lans << '\n' ;
	}
	return 0 ;
}
