Genealogic tree
На дні народження Іри було багато родичів, так що знайомство з ними виявилось не простим завданням. Для того, щоб отримати загальну картину, виникла ідея скласти генеалогічне дерево. У сумбурній обстановці якось так сталось, що дерево виявилось не бінарним, хоча кількість вершин була цілком логічною — 2^k-1.
— Щось тут не так. — Да ну? — Я пропону все переперевірити. — Конкретніше. — Разіб'ємо дерево на зв'язні частини по 2^i вершин і доручимо кожному перевірити свою частмну. — Чому саме так? — Не знаю, люблю степені двійки, і до того ж у сумі буде рівно те, що потрібно. Хоча тут є маленька проблема, це можна зробити кучею способів. — Да, я пом'ятаю судоку і залікові книжки. Скільки ж на цей раз? — У тебе прекрасна пам'ять, дай мені декілька хвилин на подумати. — Лови.
Вхідні дані
У першому рядку задано число N=2^k-1 — кількість вершин у дереві (1 ≤ k ≤ 12). У наступному рядку задано N-1 число. a_i (1 ≤ a_i < i+1) означає наявність ребра між вершинами i+1 та a_i. Вершини пронумеровано від 1.
Вихідні дані
Вивести одне число — кількість способів розділити дерево рівно на k зв'язних блоків розмірами 1, 2, 4, ..., 2^k-1. Кожна вершина повинна потрапити рівно в один блок.