Песнь Нити
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

На шёлковой равнине Фарлума расставлены $$$n$$$ насекомых. У каждого из них одна из трёх ролей: ровно одна Певчая, $$$s - 1$$$ Эхо и $$$n - s$$$ Молчаливых.

В момент времени $$$0$$$ единственная Певчая издаёт «клич». Звуковая волна не гаснет и распространяется равномерно во все стороны с одинаковой скоростью, то есть достигает точки на расстоянии $$$d$$$ от Певчей за $$$d$$$ времени. Затем каждый Эхо издает клич ровно в тот момент, когда до него впервые доходит чужой клич. Эта звуковая волна распространяется так же, как и первая. Разные звуковые волны не взаимодействуют друг с другом и не влияют друг на друга.

Слушатель находится в точке $$$(0, 0)$$$ и отмечает моменты прихода волн: сначала до него доходит ровно один клич, затем через некоторый ненулевой промежуток времени — одновременно ещё $$$c_2$$$ кличей, затем ещё через ненулевой промежуток — $$$c_3$$$, и так всего $$$k$$$ раз: получается последовательность $$$c_1, c_2, c_3, \ldots, c_k$$$.

Обратите внимание, что каждый не-Молчаливый издает клич только один раз, поэтому $$$\sum\limits_{i=1}^k c_i = s$$$.

Известны координаты всех $$$n$$$ насекомых на плоскости. Требуется посчитать число способов выбрать из них ровно одну Певчую и ровно $$$s-1$$$ Эхо (остальные автоматически становятся Молчаливыми) так, чтобы наблюдения Слушателя совпали с указанной последовательностью $$$c_i$$$. Ответ выведите по модулю $$$10^9+7$$$.

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

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ — количество наборов входных данных ($$$1 \leq t \leq 500$$$). Далее следует описание наборов входных данных.

В первой строке набора входных данных даны целые числа $$$n$$$, $$$k$$$ — число насекомых и ожидаемое число моментов, когда клич слышен в точке $$$(0, 0)$$$ ($$$1 \leq n \leq 1000$$$; $$$1 \leq k \leq \min(n, 10)$$$).

Во второй строке перечислены $$$n$$$ целых чисел — $$$x$$$-координаты насекомых. В третьей строке также перечислены $$$n$$$ целых чисел — $$$y$$$-координаты насекомых ($$$|x_i|, |y_i| \leq 10^9$$$).

В четвертой строке содержатся целые числа $$$c_1, \ldots, c_k$$$ — в каком количестве кличи приходят в точку $$$(0, 0)$$$ в разные моменты времени ($$$1 \leq c_i \leq n$$$; $$$c_1 = 1$$$; $$$\sum\limits_{i=1}^k c_i \leq n$$$). Значения $$$c_i$$$ даны в хронологическом порядке (иными словами, их порядок совпадает с течением времени вперед).

Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$1000$$$.

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

Для каждого набора входных данных выведите единственное число — количество способов назначить роли, по модулю $$$10^9 + 7$$$.

Пример

Входные данные
8
1 1
1
1
1
2 1
2 0
0 1
1
2 2
1 2
0 0
1 1
3 2
1 0 2
0 1 0
1 2
3 2
0 1 0
0 0 1
1 2
4 3
0 1 0 1
0 0 1 1
1 2 1
6 3
0 1 0 1 -1 1
0 0 1 1 1 -1
1 2 3
3 2
1 0 -1
0 1 0
1 1
Выходные данные
1
2
1
0
1
1
1
6

Примечание

Обратите внимание, что $$$c_1 = 1$$$ не гарантирует, что любое насекомое может стать Певчим.

Далее идут пояснения к примерам из условия. Будем считать, что звук идет со скоростью $$$1$$$.

  1. В первом тестовом наборе есть только одно насекомое в точке $$$(1, 1)$$$. Можно сделать его Певчим, тогда в момент времени $$$\sqrt{2}$$$ до точки слушателя дойдет один клич.

  2. Во втором тестовом наборе есть две насекомых в точках $$$(2, 0)$$$ и $$$(0, 1)$$$. Можно сделать любую из них Певчей. В таком случае клич до слушателя дойдет в момент времени $$$2$$$, если первую назначить Певчей, и в момент времени $$$1$$$, если вторую назначить Певчей. Оба этих случая подходят под условие.

  3. В третьем наборе координаты насекомых это $$$(1, 0)$$$ и $$$(2, 0)$$$. Если назначить второго Эхом, оба клича дойдут до Слушателя в одно и то же время, что не подходит под условие задачи.