#HD202501G. 树上LCM

树上LCM

题目描述

给你一棵由 nn 个节点的树和一个数 xx,其中每个节点都有一个值。问有多少条简单路径的值的 lcmlcmxx

一条简单路径的 lcmlcm 的定义为路径上所有节点的值的 lcmlcm

输入格式

第一行输入一个整数 TT (1T200)(1 \le T \le 200),表示测试的总数。

对于每个测试样例:

  • 第一行输入两个数 nn (1n105)(1 \le n \le 10^5)xx (2x107)(2 \le x \le 10^7),表示节点的个数和目标值 xx
  • 接下来 n1n-1 行,每行两个数 u,vu,v,表示节点 uuvv 之间存在一条边。
  • 接下来一行 nn 个数 a1,a2,,ana_1,a_2,\dots,a_n (1ai109)(1 \le a_i \le 10^9),表示每个节点的值。

保证所有样例中 nn 的总和不超过 3×1053 \times 10^5

输出格式

对于每个样例,输出一个整数,表示满足条件的路径的数量。

样例

输入

2
3 2
1 2
2 3
2 2 2

6 6
1 2
1 3
2 4
2 5
3 6
6 1 4 2 3 5

输出

6
5

样例解释

对于第一个样例,任何路径都满足条件。因此答案为 3×2=63 \times 2 = 6

对于第二个样例,满足条件的路径为 [1,1],[1,2],[1,4],[1,5],[4,5][1,1], [1,2], [1,4], [1,5], [4,5]。因此答案为 55