Случайное дерево

아직 제출이 없습니다시간 제한2초메모리 제한1024 MB

문제

Рассмотрим следующий процесс построения дерева TT.

Изначально дерево состоит из одной вершины, которая имеет номер 11.

Дальше в дерево добавляются вершины с номерами 2n2 \ldots n.

На ii-м шаге в дерево добавляется вершина с номером i+1i+1, также в дерево добавляется ребро из нее в некоторую уже добавленную вершину pp (1pi1 \leq p \leq i), которая выбирается среди них случайно равновероятно.

Пусть VV --- множество уже добавленных в TT вершин.

Тогда пусть f(A)f(A) --- количество вершин TT, что они лежат или в AA, или на пути между какими-либо двумя вершинами из AA (возможно, и там, и там).

Ваша задача после добавления каждой вершины вывести сумму f(A)f(A) по всем множествам AA, которые являются подмножествами множества уже добавленных в TT вершин (f(A)\sum{f(A)} по всем AVA \subseteq V). Так как ответы могут быть очень большим, выводите лишь остатки от деления ответа на 998244353998244353.

입력

Первая строка входного файла содержит одно число nn --- количество вершин в дереве после последнего шага (2n200000)(2 \leq n \leq 200000).

В следующей строке расположено n1n-1 целое число p_1,p_2,,p_np\_1, p\_2, \ldots, p\_n (1p_ii1 \leq p\_i \leq i), обозначающих добавления в граф вершины i+1i+1 и ребра между p_ip\_i и i+1i+1 соответственно. Гарантируется, что p_ip\_i выбрано случайно равновероятно среди чисел от 11 до ii.

출력

Выведите n1n-1 целое число, остатки от деления (f(A)\sum{f(A)} по всем AVA \subseteq V) на 998244353998244353 после добавления каждой вершины.

힌트

Итоговые деревья из примеров: