#include<iostream>
#include<vector>
using namespace std;
const int mod(1e9 + 7);
vector<vector<int>> rec;
pair<long long int, long long int>dfs(int u,int i){
long long red = 1;
long long white = 1;
for(int v:rec[u]){
if(v==i){
continue;
}auto [red2,white2] = dfs(v,u);
red = red*(red2+white2) % mod;
white = white*red2 % mod;
}return {red,white};
}int main(){
int n;
cin>>n;
rec.resize(n+1);
for(int i=0;i<n-1;i++){
int u,v;
cin>>u>>v;
rec[u].push_back(v);
rec[v].push_back(u);
}
auto[red,white] = dfs(1,-1);
long long int res= (red+white)%mod;
cout<<res<<endl;
return 0;
}