#include<bits/stdc++.h>
using namespace std;
int n;
long long dp[100005][2];
vector<int> g[100005];
void dfs(int x,int pre)
{
	dp[x][0]=1;
	dp[x][1]=1;
	for(int i=0;i<g[x].size();i++)
		if(g[x][i]!=pre)
		{
			dfs(g[x][i],x);
			dp[x][0]*=(dp[g[x][i]][0]+dp[g[x][i]][1]);
			dp[x][0]%=1000000007;
			dp[x][1]*=dp[g[x][i]][0];
			dp[x][1]%=1000000007;
		}
}
int main()
{
	cin>>n;
	for(int i=1;i<n;i++)
	{
		int x,y;
		cin>>x>>y;
		g[x].push_back(y);
		g[y].push_back(x);
	}
	dfs(1,0);
	cout<<(dp[1][0]+dp[1][1])%1000000007<<endl;
	return 0;
}
