D. Случайная функция и дерево
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

У вас есть корневое дерево, состоящее из n вершин. Пронумеруем вершины дерева целыми числами от 1 до n включительно. Корень дерева находится в вершине 1. Для каждого i > 1 непосредственным предком вершины i является вершина pi. Назовём вершину i ребёнком вершины pi.

Изначально вы покрасили все вершины в красный цвет. Кроме этого, вы любите перекрашивать некоторые вершины дерева. Для этого вы используете функцию paint, которую вы вызываете от корня дерева. Ниже приведен псевдокод этой функции:


count = 0 // глобальная целочисленная переменная

rnd() { // эта функция используется в коде paint
вернуть 0 или 1 с равной вероятностью 50%
}

paint(s) {
if (count четное) then покрасить вершину s в белый цвет
else покрасить вершину s в черный цвет

count = count + 1

if rnd() = 1 then children = [массив из детей вершины s в порядке возрастания номеров]
else children = [массив из детей вершины s в порядке убывания номеров]

for child in chilren { // проходим по элементам массива child
if rnd() = 1 then paint(child) // выполняем рекурсивный вызов функции paint
}
}

В результате выполнения этой функции некоторые вершины могут изменить свой цвет на белый или чёрный, а некоторые — остаться красными.

Ваша задача — определить количество различных возможных раскрасок вершин дерева. Будем считать раскраску возможной, если существует ненулевая вероятность получить эту раскраску с помощью одного вызова функции paint(1). Будем считать раскраски различными, если существует пара вершин, которые покрашены в различные цвета в этих раскрасках. Поскольку искомое количество может быть очень большим, найдите остаток от деления этого количества на 1000000007 (109 + 7).

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

В первой строке записано единственное целое число n (2 ≤ n ≤ 105) — количество вершин в дереве.

Во второй строке записано n - 1 целое число p2, p3, ..., pn (1 ≤ pi < i). Число pi обозначает номер предка вершины i.

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

Выведите единственное целое число — ответ на задачу по модулю 1000000007 (109 + 7)

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

Ниже приведены все возможные покраски первого примера.