output_description: Print the number of ways in which the vertices can be painted, modulo 10^9 +
  7.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      x_1 y_1
      x_2 y_2
      :
      x_{N - 1} y_{N - 1}
attempt: (N,) = map(int, input().split())
  M = 10**9 + 7
  d = [set() for _ in range(N + 1)]
  from collections import deque
  
  for _ in range(N - 1):
      a, b = map(int, input().split())
      d[a].add(b)
      d[b].add(a)
  
  
  stack = deque([1])
  leafs = set()
  p = [0 for _ in range(N + 1)]
  vs = set([1])
  vv = list()
  while stack:
      v = stack.popleft()
      vv.append(v)
      for u in d[v]:
          if u in vs:
              continue
          p[u] = v
          vs.add(u)
          stack.append(u)
  
  dp1 = [-1 for _ in range(N + 1)]
  dp2 = [-1 for _ in range(N + 1)]
  for v in vv[::-1]:
      if len(d[v]) == 1 and v != 1:
          dp1[v] = 1
          dp2[v] = 1
          continue
      xx = yy = 1
      for u in d[v]:
          if p[v] == u:
              continue
          xx = (xx * dp2[u]) % M
          yy = (yy * (dp1[u] + dp2[u])) % M
      dp1[v] = xx
      dp2[v] = yy
  print(dp1[1] + dp2[1])
  
problem_description: Statement
  
  There is a tree with N vertices, numbered 1, 2, \ldots, N. For each i (1 \leq
  i \leq N - 1), the i-th edge connects Vertex x_i and y_i.
  
  Taro has decided to paint each vertex in white or black. Here, it is not
  allowed to paint two adjacent vertices both in black.
  
  Find the number of ways in which the vertices can be painted, modulo 10^9 + 7.
samples: [{"input": "3\n    1 2\n    2 3", "output": "5\n    \n\nThere are five ways to paint the vertices, as follows:\n\n![](https://img.atcoder.jp/dp/indep_0_muffet.png)\n\n* * *"}, {"input": "4\n    1 2\n    1 3\n    1 4", "output": "9\n    \n\nThere are nine ways to paint the vertices, as follows:\n\n![](https://img.atcoder.jp/dp/indep_1_muffet.png)\n\n* * *"}, {"input": "1", "output": "2\n    \n\n* * *"}, {"input": "10\n    8 5\n    10 8\n    6 5\n    1 5\n    4 8\n    2 10\n    3 6\n    9 2\n    1 7", "output": "157"}]