B. Граф аквапарка
ограничение по времени на тест
7 секунд
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У вас есть динамический граф на $$$n$$$ вершинах. Граф описывается массивом $$$a$$$: вершина $$$i$$$ имеет ребро к $$$a_i$$$. Изначально $$$a_i=i$$$ для всех $$$i$$$.

Вам даны $$$q$$$ троек ($$$u$$$,$$$x$$$,$$$s$$$). Для каждой из них выполните следующее:

  • $$$a_u=x$$$ (удалите старое ребро $$$u \rightarrow a_u$$$ и добавьте новое ребро $$$u \rightarrow a_u=x$$$)
  • Начните новую прогулку от вершины $$$s$$$. Мы движемся вдоль направленных рёбер. После каждого перемещения мы проверяем, посещали ли мы эту вершину ранее в той же прогулке; если да, мы останавливаемся. Найдите количество шагов, которые мы сделали.
Входные данные

Первая строка содержит два целых числа $$$n$$$ и $$$q$$$ ($$$1 \le n,q \le 2\cdot 10^5$$$) — количество вершин и количество запросов соответственно.

Каждая из следующих $$$q$$$ строк содержит три целых числа $$$u,x,s$$$ ($$$1 \le u,x,s \le n$$$) — параметры запроса.

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

Для каждого запроса выведите единственное целое число — количество шагов прогулки.

Пример
Входные данные
8 7
1 2 2
2 3 1
3 1 1
1 7 1
7 2 1
5 3 5
6 2 6
Выходные данные
1
3
3
2
4
5
5