Топологічні сортування дерева
Вам дано дерево з вершин, пронумерованих від до . Корнем дерева є вершина з номером . Для кожного від до визначимо — номер суміжної з вершини, що лежить на простому шляху між вершиною та корнем. На кожному з ребер записаний символ «<
» або «>
».
Знайдіть кількість способів записати числа від до у вершинах дерева так, щоб кожне число було використано рівно один раз і при цьому виконувались усі відношення, вказані на ребрах. Тобто для усіх ребер з символом «<
» повинно виконуватись , а для усіх ребер з символом «>
» повинно виконуватись .
Через те, що відповідь може бути дуже великою, виведіть її за модулем .
Вхідні дані
Перший рядок містить одне ціле число () — кількість вершин дерева.
Кожен з наступних рядків містить одне ціле число () та символ («<
», «>
»), які позначають, що на ребрі між вершинами з індексами та записаний символ . Зверніть увагу, що тут нумерація за починається з .
Вихідні дані
Виведіть єдине ціле число — кількість способів розставити усі числа від до у вершинах дерева так, щоб виконувались усі відношення, вказані на ребрах. Зверніть увагу, що потрібно вивести не саму відповідь, а лише її остачу від ділення на .
Приклади
Оцінювання
( балів) ;
( балів) ;
( балів) '
<
';( бали) ;
( балів) ;
( балів) ;
( бали) ;
( балів) без додаткових обмежень.