• محدودیت زمان: ۴ ثانیه
  • محدودیت حافظه: ۵۱۲ مگابایت

شنگدباو روی ساختمان‌داده‌‌ای جدید به نام درخت تقسیم دارد کار می‌کند این درخت از \(n\) راس تشکیل شده‌است و هر رأس بجز رأس شماره \(1\) یک پدر دارد یعنی رأس \(i\) ام پدرش \(p_i\) است و \(p_i < i\) می‌باشد. شنگدباو قرار است روی هر راس برچسبی بنویسد به طوریکه:

  • برچسب هر رأس از برچسب رأس پدرش بیشتر یا مساوی باشد.
  • باقیمانده‌ی تقسیم \(i\) بر برچسب رأس \(i\)ام صفر باشد.

با توجه به اینکه تعداد حالت‌های برچسب گذاری ممکن است خیلی زیاد باشد٬‌ شنگدباو گیج شده‌است و می‌خواهد بداند چند حالت مختلف برچسب گذاری هست که این شرایط را داشته باشد. به شنگدباو کمک کنید!

با توجه به اینکه تعداد حالات ممکن است زیاد باشد باقیمانده‌ی جواب را بر \(10^9 + 7\) خروجی دهید.

ورودی

در خط اول ورودی به شما عدد \(n\) یعنی تعداد رئوس درخت داده می‌شود و سپس در خط بعدی \(n-1\) عدد ورودی داده می‌شود که عدد \(i\)ام \(p_{i+1}\) است.

\[1\le n \le 500\ 000 \]

\[1 \le p_i < i \le n\]

خروجی

در یک خط تنها تعداد حالات جواب را به پیمانه ی \(10^9 + 7\) خروجی دهید.

مثال

ورودی نمونه ۱

4
1 1 1

خروجی نمونه ۱

12

ورودی نمونه ۲

5
1 2 2 3

خروجی نمونه ۲

11
ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.