题目描述
Facer 是一个萌萌哒的码农。他写了 N 个程序。程序和程序之间有巧妙的联系,即任意两个程序恰好由一条联系链连在一起。
具体来说,对于程序 a,b,存在且仅存在一个序列 a,x1,x2,…,xn,b,使得 a,x1 有联系, x1,x2 有联系,依此类推,xn,b 有联系。符合这样的一组程序称为程序块。
现在已知一个程序块的程序之间的联系,询问它有多少个子程序块。即取出一个程序子集 S,使得 S 也满足上述条件。
输入格式
第一行输入一个正整数 N。
接下来 N−1 行,每行两个数,代表有联系的两个程序。
输出格式
输出有多少个子程序块,对 109+7 取模。
3
1 2
2 3
6
提示
样例解释:
子集 {1},{2},{3},{1,2},{2,3},{1,2,3} 满足上述条件。
数据范围
对于 10% 的数据 1≤N≤20。
对于 40% 的数据 1≤N≤500。
对于 100% 的数据 1≤N≤105。