Доставка почты

아직 제출이 없습니다시간 제한2초메모리 제한1024 MB

문제

Для автоматизированной доставки почты в отдалённых регионах тестируется роботизированная система с использованием автоматизированного робота-курьера.

В регионе расположены nn городов, соединённые n1n - 1 двусторонними дорогами. По дорогам можно добраться от каждого города до любого другого. Если два города соединены дорогой, назовём их соседними. У каждого города не более DD соседних городов. Города пронумерованы от 11 до nn, город номер 11 является столицей региона.

В каждом городе находится офис курьерской компании. Курьеру необходимо развезти mm посылок. Для ii-й посылки заданы два числа: a_ia\_i и b_ib\_i --- город, из которого надо доставить посылку, и город, в который надо доставить посылку.

Робот-курьер действует по следующему алгоритму.

  • Он начинает свой путь в столице и перемещается между городами по дорогам. При перемещении между городами курьер может перевозить на себе произвольное число посылок.
  • Каждый раз, когда курьер приезжает в город, в котором он ранее не был, он заезжает в офис, находящийся в этом городе, оставляет все имеющиеся у него посылки, адресованные в этот город, и забирает все посылки, отправляемые из этого города.
  • Если есть соседний с текущим город, в котором курьер ещё не был, он выбирает один из этих городов и перемещается в него.
  • Если все соседние города посещены, и курьер находится не в столице, он перемещается в соседний город, ближайший к столице. Если курьер находится в столице, он прекращает свою поездку.

Обратите внимание, что курьер заезжает в офис в каждом городе ровно один раз, при первом посещении. Курьер доставит ii-ю посылку, если он заедет в офис в a_ia\_i-м городе раньше, чем в офис в b_ib\_i-м городе.

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

Требуется написать программу, которая по заданному описанию дорог в регионе и посылок, которые необходимо доставить, определяет количество различных допустимых последовательностей посещения городов и выводит остаток от деления этого количества на 109+710^9+7.

입력

В первой строке даны два целых числа nn и mm --- количество городов в регионе и количество посылок (2n100,0002 \le n \le 100\\,000, 1m300,0001 \le m \le 300\\,000).

В следующих n1n - 1 строке даны описания дорог. Каждая дорога описывается двумя целыми числами u_iu\_i и v_iv\_i --- номера городов, которые соединяет ii-я дорога (1u_i,v_in1 \le u\_i, v\_i \le n, u_iv_iu\_i \ne v\_i).

Гарантируется, что по дорогам можно добраться от любого города до любого другого. Гарантируется, что количество дорог, выходящих из каждого города, не превосходит DD.

В следующих mm строках даны описания посылок. Каждая посылка описывается двумя целыми числами a_ia\_i и b_ib\_i --- номера городов, из которого и в который нужно доставить ii-ю посылку (1a_i,b_in1 \le a\_i, b\_i \le n, a_ib_ia\_i \ne b\_i).

출력

В единственной строке выведите одно целое число --- ответ по модулю 109+710^9+7.

힌트

Рассмотрим схему городов и дорог из первого примера, она приведена на рисунке. Необходимо доставить посылки из города 5 в город 3 и из города 4 в город 6.

Следующие последовательности посещения городов являются допустимыми. Первое посещение, во время которого курьер посещает офис, отмечено жирным: (1,4,1,2,5,2,6,2,1,3,1)(\mathbf{1}, \mathbf{4}, 1, \mathbf{2}, \mathbf{5}, 2, \mathbf{6}, 2, 1, \mathbf{3}, 1), (1,4,1,2,6,2,5,2,1,3,1)(\mathbf{1}, \mathbf{4}, 1, \mathbf{2}, \mathbf{6}, 2, \mathbf{5}, 2, 1, \mathbf{3}, 1).

Во втором примере для той же схемы городов и дорог необходимо доставить посылку из города 5 в город 2. Это невозможно, так как при повторном посещении города 2 курьер не заезжает в офис, а впервые посетить город 5 до города 2 при пути из столицы невозможно.