#include using namespace std; int main() { int N;; cin >> N; vector in( N ); vector> g( N ); for( int i = 0; i < N - 1; i++ ) { int A, B; cin >> A >> B; A--; B--; g[A].push_back( B ); in[B]++; } int r; for( int i = 0; i < N; i++ ) { if( in[i] == 0 ) r = i; } vector l( N ); typedef pair P; queue

que; que.push( P( r, 0 ) ); while( !que.empty() ) { int i, len; tie( i, len ) = que.front(); que.pop(); l[i] = len; for( int e : g[i] ) { que.push( P(e, len + 1) ); } } const long long MOD = 1000000000 + 7; long long ans = 0; queue que1; que1.push( r ); while( !que1.empty() ) { int i = que1.front(); long long a = l[i]; que1.pop(); for( int e : g[i] ) { que1.push( e ); l[e] += a; l[e] %= MOD; ans += l[e]; ans %= MOD; } } cout << ans << endl; }