Задача D. Поддеревья

Входной файл:subtrees.in   Ограничение времени:2 сек
Выходной файл:subtrees.out   Ограничение памяти:256 Мб
Максимальный балл:108  

Условие

Дерево — это связный неориентированный граф без циклов. Поддеревом дерева T называется его связный подграф.

В зависимости от структуры дерева у него может быть несколько поддеревьев. Например, у дерева-цепочки из n вершин n(n + 1) / 2 поддеревьев, а у дерева-звезды (n − 1 вершина связаны с одной центральной) количество поддеревьев равно 2n − 1 + n − 1.

Аналогично может быть различное количество способов выделить в дереве два непересекающихся по вершинам поддерева, три непересекающихся поддерева, и т. д. Наконец, вне зависимости от структуры дерева есть 2n − 1 способ выбрать n − 1 непересекающееся поддерево и ровно один способ выбрать n непересекающихся поддеревьев (просто n изолированных вершин).

По заданному дереву с n вершинами выведите для каждого k от 1 до n количество способов выбрать k непересекающихся по вершинам поддеревьев данного дерева.

Формат входного файла

Первая строка входного файла содержит n. Следующие n − 1 строк описывают ребра дерева.

Формат выходного файла

Выведите n целых чисел: для каждого k от 1 до n выведите количество способов выбрать k непересекающихся по вершинам поддеревьев заданного дерева. Выводите каждое число по модулю 109.

Ограничения

2 ≤ n ≤ 100

Примеры тестов

Входной файл (subtrees.in) Выходной файл (subtrees.out)
1
5
1 2
2 3
3 4
4 5
15
35
28
9
1
2
5
1 2
1 3
1 4
1 5
20
38
28
9
1

0.066s 0.009s 13