\begin{problem}{Опять деревья...}{стандартный ввод}{стандартный вывод}{1 секунда}{1024 мегабайта}

Дано дерево, состоящее из $n$ вершин. На каждой вершине записано целое неотрицательное число $a_v$. Также вам даны $k$ различных целых неотрицательных чисел $b_1, \ldots, b_k$.

Иван изучает рёбра данного дерева. Он считает множество рёбер красивым, если после удаления этих рёбер из дерева дерево распадается на компоненты связности, где в каждой из компонент побитовый XOR всех чисел $a_v$ в этой компоненте принадлежит множеству $b$.

Напомним, что операция побитового XOR ($\oplus$) обозначается <<\texttt{xor}>> в Паскале, <<\texttt{\char 94}>> в C++, Python и Java; для двух целых чисел она определена следующим образом: $i$-й бит результата равен $1$ тогда и только тогда, когда в одном из чисел этот бит $1$, а в другом $0$. Например, $6 \oplus 10 = 0110_2 \oplus 1010_2 = 1100_2 = 12$.

Посчитайте количество множеств рёбер в дереве, которые Иван считает красивыми. Поскольку это число может быть слишком большим, от вас требуется вывести только остаток от деления этого числа на $10^9 + 7$.

\InputFile
Первая строка содержит два целых числа $n$ и $k$ ($2 \leq n \leq 10^5$, $1 \leq k \leq 10$)~--- количество вершин в дереве и размер множества $b$.

Следующие $n - 1$ строк описывают рёбра дерева. $i$-я из них содержит два целых числа $v_i$ и $u_i$ ($1 \leq v_i, u_i \leq n$)~--- номера вершин, соединённых $i$-м рёбером.

Следующая строка содержит $n$ целых чисел $a_1, a_2, \ldots, a_n$ ($0 \leq a_i < 2^{30}$)~--- значения, записанные на вершинах.

Следующая строка содержит $k$ целых различных чисел $b_1, b_2, \ldots, b_k$ ($0 \leq b_i < 2^{30}$)~--- элементы множества $b$.

\OutputFile
В единственной строке выведите ответ на задачу.

\Scoring
Тесты к этой задаче состоят из девяти групп. Баллы за каждую группу ставятся только при прохождении всех тестов группы и всех тестов некоторых из предыдущих групп. Обратите внимание, что прохождение тестов из условия не требуется для некоторых групп. \textbf{Offline-проверка} означает, что результаты тестирования вашего решения на данной группе станут доступны только после окончания соревнования. Группы в данной задаче <<склеиваются>>. Это означает, что за подгруппу начисляются баллы, если хотя бы одна из ваших посылок успешно проходит все её тесты. Обратите внимание, что если у подгруппы имеются необходимые подгруппы, то для проверки на данной подгруппе текущая посылка должна пройти тесты во всех этих необходимых подгруппах (при этом результаты предыдущих посылок не учитываются).

\begin{center}
\begingroup
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{|c|c|c|c|c|c|}
\hline
& & \multicolumn{2}{c|}{Доп. ограничения} & & \\
\cline{3-4}
\raisebox{2.25ex}[0cm][0cm]{Группа}
& \raisebox{2.25ex}[0cm][0cm]{Баллы}
& $n$ & $k$
& \raisebox{2.25ex}[0cm][0cm]{\parbox{3cm}{\centering Необх. группы}}
& \raisebox{2.25ex}[0cm][0cm]{Комментарий}
\\
\hline 
0 & 0 & -- & -- & -- & Тесты из условия \\
\hline 
1 & 13 & --  & $k = 1$ & -- & $b_1 = 0$ \\
\hline
2 & 11 & $n \leq 15 $ & $k \leq 4$ & 0 & --  \\
\hline
3 & 15 & -- & $k \leq 4$ & 0 & $a_i, b_i < 32$ \\
\hline
4 & 15 & -- & $k \leq 4$ & -- & $v_i = i$, $u_i = i + 1$ \\
\hline
5 & 9 & -- & $k = 1$ & 1 & -- \\
\hline
6 & 11 & -- & $k \leq 2$ & 0, 1, 5 & -- \\
\hline
7 & 12 & -- & $k \leq 4$ & 0--6 & -- \\
\hline
8 & 8 & -- & $k \leq 6$ & 0--7 & -- \\
\hline
9 & 4 & -- & $k \leq 8$ & 0--8 & \textbf{Offline-проверка} \\
\hline
10 & 2 & -- & -- & 0--9 & \textbf{Offline-проверка} \\
\hline
\end{tabular}
\endgroup
\end{center}


\Examples

\begin{example}
\exmpfile{example.01}{example.01.a}%
\exmpfile{example.02}{example.02.a}%
\exmpfile{example.03}{example.03.a}%
\exmpfile{example.04}{example.04.a}%
\end{example}

\Note
Иллюстрация к первому примеру. В нем можно удалить ребро между вершинами $1$ и $2$. Тогда побитовый XOR в компоненте, состоящей из вершин $2$ и $5$ равен $a_2 \oplus a_5 = 2 \oplus 3 = 1$. Побитовый XOR в компоненте вершин $1$, $3$ и $4$ равен $a_1 \oplus a_3 \oplus a_4 = 0 \oplus 2 \oplus 3 = 1$.
Вторым красивым набором является множество, состоящее из ребра, соединяющего вершины $1$ и $3$.

\begin{center}
\includegraphics[scale=0.5]{sample1.png}
\end{center}

В третьем примере красивыми будут множества (ребро обозначается парой вершин, которые оно соединяет) $[(1, 2)], [(1, 3)], [(2, 5)], [(3, 4)]$. Обратите внимание, что первый и третий примеры отличаются только множеством $b$.

В четвертом примере красивыми будут множества $[(1, 2)], [(3, 4)], [(1, 2), (2, 3), (3, 4)]$.

\end{problem}

