Спільний предок - 2
Задано підвішене дерево, яке містить n (1 ≤ n ≤ 10^5
) вершин, пронумерованих від 0 до n - 1. Потрібно відповісти на m (1 ≤ m ≤ 10^7
) запитів про найменшого спільного предка для пари вершин.
Запити генеруються наступним чином. Задано числа a[1]
, a[2]
та числа x, y та z. Числа a[3]
, ..., a[2m]
генеруються наступним чином:
a[i]
= (x * a[i-2]
+ y * a[i-1]
+ z) mod n.
Перший запит має вигляд <a[1]
, a[2]
>. Якщо відповідь на (i - 1)-й запит дорівнює v, то i-й запит має вигляд <(a[2i-1]
+ v) mod n, a[2i]
>.
Вхідні дані
Перший рядок містить два числа: n та m. Корінь дерева має номер 0. Другий рядок містить n - 1 цілих чисел, i-е з цих чисел дорівнює номеру предка вершины i. Третій рядок містить два цілих числа у діапазоні від 0 до n - 1: a[1]
та a[2]
. Четвертий рядок містить три цілих числа: x, y та z, ці числа невід'ємні і не перевищують 10^9
.
Вихідні дані
Виведіть у вихідний файл суму номерів вершин - відповідей на усі запити.