#include<bits/stdc++.h>
#define int long long
#define endl "\n"
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;


const int maxn = 1e5 , MOD = 1e9 + 7;
vector<vector<int>>g(maxn+1);
int dp[maxn+1][2];
int n;
void dfs(int u=1,int p=0)
{
	dp[u][0]=1;
	dp[u][1]=1;
	
	for(auto v:g[u])
	{
		if(v!=p)
		{
			dfs(v,u);
			
			dp[u][0]*=dp[v][1];
			dp[u][1]*=dp[v][0]+dp[v][1];
			
			dp[u][0]%=MOD;
			dp[u][1]%=MOD;
		}
	}
}
	
int32_t main()
{
	IOS
	memset(dp,0,sizeof(dp));
	cin >> n ;
	for(int i=1;i<n;i++)
	{
		int u,v;cin>>u>>v;
		g[u].push_back(v);
		g[v].push_back(u);
	}
	
	dfs();
	
	cout << (dp[1][0]+dp[1][1])%MOD << endl;
}
