На плоскость накинута сетка с узлами в точках с целочисленными координатами. В точке (xa, ya) стоит Поликарп, который хочет попасть в точку (xb, yb). У Поликарпа есть набор из n векторов (xvi, yvi). Чтобы сделать один шаг из точки (x, y), Поликарп выбирает вектор i из своего набора и переходит в точку (x + xvi, y + yvi). Поликарп не может останавливаться во время перехода. Переход всегда происходит от одного узла сетки к другому.
К несчастью для Поликарпа, на плоскости находятся m препятствий в виде отрезков. Поликарп не может пересекать или касаться их во время передвижения. Начальная точка, где находится Поликарп, может принадлежать отрезку, в таком случае он не может двигаться.
Поликарп очень устал и не может сделать больше l шагов. Скажите, за какое минимальное число шагов Поликарп может добраться до конечной точки. Если это невозможно сделать не более, чем за l шагов, выведите - 1. Каждый вектор можно использовать произвольное число раз.
В первой строке находятся целые числа xa, ya, xb, yb, l — начальные и конечные координаты пути и максимальное количество шагов, которое может сделать Поликарп. - 500 ≤ xa, ya, xb, yb ≤ 500, 1 ≤ l ≤ 20.
Во второй строчке написано число n (1 ≤ n ≤ 10) — количество векторов у Поликарпа. В следующих n строках написаны пары целых чисел xvi, yvi — координаты векторов. - 10 ≤ xvi, yvi ≤ 10.
В следующей строке написано число m (0 ≤ m ≤ 10) — количество препятствий на плоскости в виде отрезков. Далее в m строчках написаны целые числа x0i, y0i, x1i, y1i — координаты концов отрезков. - 1000 ≤ x0i, y0i, x1i, y1i ≤ 1000.
Гарантируется что начальная и конечная точки пути различны и что препятствия не вырождаются в точку. Для каждой строки все числа в ней разделены пробелами.
Единственное число — минимальное количество шагов, за которое Поликарп может дойти до конечной точки, или - 1, если это невозможно.
0 0 10 10 10
1
10 10
1
0 0 10 10
-1
0 0 10 10 10
1
10 10
1
5 5 25 25
-1
0 0 9 9 10
2
10 10
-1 -1
0
2
| Name |
|---|


