#include<bits/stdc++.h>
#define ll long long
#define cri const register int
#define re register
using namespace std;
const int mod=1e9+7;
vector<int>to[5003];
int dp[5003][5003],f[5003],sz[5003],F[5003];
void dfs(cri x,cri ff){
	dp[x][1]=1;sz[x]=1;
	for(int y:to[x]) if(y!=ff){
		dfs(y,x);
		for(int i=0;i<=sz[x]+sz[y];i++) F[i]=0;
		for(int i=0;i<=sz[x];i++)
			for(int j=0;j<=sz[y];j++) F[i+j]=(F[i+j]+1ll*dp[x][i]*dp[y][j])%mod;
		sz[x]+=sz[y];
		for(int i=0;i<=sz[x];i++) dp[x][i]=F[i];
	}
	for(int i=2;i<=sz[x];i+=2) dp[x][0]=(dp[x][0]-1ll*dp[x][i]*f[i]%mod+mod)%mod;
}
int main(){
	int n;cin>>n;f[0]=1;
	for(int i=2;i<=n;i+=2) f[i]=1ll*f[i-2]*(i-1)%mod;
	for(int i=1,x,y;i<n;i++){
		scanf("%d%d",&x,&y);
		to[x].push_back(y);to[y].push_back(x);
	}
	dfs(1,0);
	cout<<(mod-dp[1][0])%mod<<endl;
}