#include<bits/stdc++.h>
#define int long long
using namespace std;
const int Maxn=1e5+10,MOD=1e9+7;
int N;
vector<int> G[Maxn];
int Dp[Maxn][2];
void Dfs(int X,int Par)
{
	Dp[X][0]=Dp[X][1]=1;
	for(int i=0;i<G[X].size();i++)
	{
		int To=G[X][i];
		if(To==Par)
		{
			continue;
		}
		Dfs(To,X);
		(Dp[X][0]*=(Dp[To][0]+Dp[To][1])%MOD)%=MOD;
		(Dp[X][1]*=Dp[To][0]%MOD)%=MOD;
	}
}
signed main()
{
	cin>>N;
	for(int i=1;i<=N-1;i++)
	{
		int X,Y;
		cin>>X>>Y;
		G[X].push_back(Y);
		G[Y].push_back(X);
	}
	Dfs(1,1);
	cout<<(Dp[1][0]+Dp[1][1])%MOD<<endl;
	return 0;
}