Задача №113814. Древесный путь

Вам дано дерево с N вершинами, обозначенными целыми положительными числами от 1 до N . Кроме того, вам даны M пар вершин из дерева в формате ( a 1 , b 1 ), ( a 2 , b 2 ), ..., ( a m , b m ).

Вам нужно направить каждый ребро дерева так, чтобы для каждой данной вам пары вершин ( a i , b i ) был путь от a i до b i или от b i до a i . Сколько существует различных способов достичь этого? Поскольку ответ может быть большим, выведите его по модулю 10 9 + 7 .

Входные данные

Первая строка содержит 2 числа N и M ( 1 ≤ N , M ≤ 3·10 5 ) — число вершин в дереве и числа заданных пар вершин.

В следующих N - 1 строках идёт описание дерева. Каждая содержит по 2 числа X и Y ( 1 ≤ X , Y N ) и означает, что вершины X и Y соединены ребром.

Следующие M строк описывают заданные пары вершин. В i -й из них даны числа a i и b i . Гарантируется, что нет одинаковых пар вершин. Т.е. нет таких i и j , что a i = b i и a j = b j , или a i = b j и a j = b i .

Выходные данные

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

Система оценки

Тесты к этой задаче состоят из трёх групп. Баллы за каждую группу ставятся только при прохождении всех тестов группы и всех тестов некоторых из предыдущих групп. Обратите внимание, прохождение тестов из условия не требуется для принятия на проверку.

1. Бамбук - дерево, где любая вершина с номером i > 1 связана ребром с вершиной с номером i - 1 .

Примеры
Входные данные
4 1
1 2
2 3
3 4
2 4
Выходные данные
4
Входные данные
7 2
1 2
1 3
4 2
2 5
6 5
5 7
1 7
2 6
Выходные данные
8
Входные данные
4 3
1 2
1 3
1 4
2 3
2 4
3 4
Выходные данные
0
Сдать: для сдачи задач необходимо войти в систему