Дано дерево, состоящее из $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$.