#include <iostream>
#include <vector>
using namespace std;
#define int long long
const int mod = 1e9 + 7;
vector<vector<int>> dp(2e5, vector<int>(3, 0));
vector<vector<int>> G(2e5, vector<int>());
void dfs(int u, int fa) {
    dp[u][0] = 1;
    dp[u][1] = 1;
    for(int i = 0;i < G[u].size();++i){
        int v = G[u][i];
        if(v == fa) continue;
        dfs(v, u);
        dp[u][0] = (dp[u][0] * dp[v][1]) % mod;
        dp[u][1] = (dp[u][1] * (dp[v][0] + dp[v][1]) % mod) % mod;
    }
}

signed main() {
    int n;
    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(1, -1);

    int ans = (dp[1][0] + dp[1][1]) % mod;
    cout<<ans<<endl;

}
// 64 位输出请用 printf("%lld")