#include<bits/stdc++.h>
using namespace std;
#define mod 1000000007LL
void dfs(int i,int last);
int n;
vector<int>node[100009];
long long dp[100009][3];

int main(){
  cin>>n;
  for(int i=0;i<n-1;i++){
    int x,y;
    cin>>x>>y;
    node[x].push_back(y);
    node[y].push_back(x);
  }

  dfs(1,0);

  cout<<(dp[1][0]+dp[1][1])%mod<<endl;
  return(0);
}

void dfs(int i,int last){
  dp[i][0]=dp[i][1]=1;
  for(int j=0;j<node[i].size();j++){
    int next=node[i][j];
    if(next==last)continue;
    dfs(next,i);
    dp[i][0]*=dp[next][0]+dp[next][1];
    dp[i][1]*=dp[next][0];
    dp[i][0]%=mod;
    dp[i][1]%=mod;
  }
}
