#include #define FOR(i,a,b) for (int i = (a); i <= (b); i++) #define FORD(i,a,b) for (int i = (a); i >= (b); i--) #define REP(i,b) for (int i = 0; i < (b); i++) #define PB push_back using namespace std; vector>>D; vector>V; int n,m; long long prv=1000000007; void dfs1(int v, int f){ //cout<>n>>m){ V.clear(); V.resize(n+7); REP(i,n-1){ int a,b; cin>>a>>b; V[a].PB(b); V[b].PB(a); } D.clear(); D.resize(n+7,vector>(n+7,vector(3,0))); dfs1(1,-1); cout<<(D[1][m][0]+D[1][m][1])%prv<