Існує міст, пронумерованих від до . Усі міста з'єднані за допомогою (n - 1) доріг так, що від кожного міста можна дістатися до кожного. Кожна дорога має певну довжину.
Відомо, що місто з номером було захоплено кланом бандитів з номером a_i (1 \leq a_i \leq n) в момент часу t_i. Після захоплення міста (тобто, починаючи з моменту часу t_i включно), через нього можуть проходити тільки представники клану a_i.
Дайте відповідь на запитань наступного вигляду:
u v b T — чи зможе представник клану пройти від міста до міста , якщо він розпочне свою подорож у час . У випадку неможливості здійснення подорожі, необхідно також сказати номер першого міста на шляху від до , через яке неможливо буде пройти.
Перший рядок містить єдине ціле число (2 \leq n \leq 10^5) — кількість міст.
Кожен з наступних (n - 1) рядків містить два цілі числа p_i та d_i (1 \leq p_i < i, 1 \leq d_i \leq 10^3), що позначають дорогу між містами та p_i довжиною d_i. Індексація починається з .
Наступний рядок містить цілих чисел a_i (1 \leq a_i \leq n), що позначають номера кланів, що захопили відповідне місто.
Наступний рядок містить цілих чисел t_i (1 \leq t_i \leq 10^9), що позначають моменти часу захоплення кожного міста.
Наступний рядок містить єдине ціле число (1 \leq m \leq 10^5) — кількість запитань.
Останні рядків описують запитання. Кожен з них містить чотири цілі числа u_i, v_i, b_i, T_i (1 \leq u_i, v_i, b_i \leq n, 1 \leq T_i \leq 10^9) — номера початкового та фінішного міст чергового шляху, номер клану мандрівника, та момент часу початку подорожі відповідно.
Для кожного запитання виведіть в окремому рядку єдине ціле число — номер першого міста на шляху від до , через яке неможливо буде пройти. Якщо такого міста не існує, виведіть «-1».
Зверніть увагу на великий об'єм вхідних та вихідних даних у цій задачі. Радимо використовувати швидкі засоби введення та виведення, наприклад scanf/printf замість cin/cout у мові C++, та sys.stdin.readline замість input у Python. Також радимо використовувати інтерпретатор PyPy при розв'язанні задачі на Python.
Приклад 1
Приклад 2
Приклад 3
( балів): p_i = 1;
( балів): n, m \leq 10^3;
( балів): p_i = i - 1, t_i = 1;
( балів): p_i = i - 1, a_i = 1, b_i = 2;
( балів): p_i = i - 1;
( балів): t_i = 1;
( балів): a_i = 1, b_i = 2;
( балів): без додаткових обмежень.