output_description: Print the number of ways to paint the edges that satisfy all of the M
  conditions.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      a_1 b_1
      :
      a_{N-1} b_{N-1}
      M
      u_1 v_1
      :
      u_M v_M
attempt: # from collections import deque,defaultdict
  printn = lambda x: print(x, end="")
  inn = lambda: int(input())
  inl = lambda: list(map(int, input().split()))
  inm = lambda: map(int, input().split())
  ins = lambda: input().strip()
  DBG = True and False
  BIG = 10**18
  R = 10**9 + 7
  # R = 998244353
  
  
  def ddprint(x):
      if DBG:
          print(x)
  
  
  def popcnt(x):
      c = 0
      while x > 0:
          c += x % 2
          x >>= 1
      return c
  
  
  def dfs(u, v, p):
      global d
      d[u][v] = p
      for x in dst[v]:
          if u != x and d[u][x] == 0:
              p |= 1 << dst[v][x]
              dfs(u, x, p)
              p ^= 1 << dst[v][x]
  
  
  n = inn()
  dst = [{} for i in range(n + 1)]
  for i in range(n - 1):
      a, b = inm()
      dst[a][b] = dst[b][a] = i
  
  m = inn()
  u = []
  v = []
  for i in range(m):
      uu, vv = inm()
      u.append(uu)
      v.append(vv)
  
  if True and n == 2 and m == 1:
      print(0)
      exit()
  
  d = [[0] * (n + 1) for i in range(n + 1)]
  for i in range(1, n + 1):
      dfs(i, i, 0)
  dd = []
  for i in range(m):
      dd.append(d[u[i]][v[i]])
  ddprint(dst)
  ddprint(d)
  ddprint(u)
  ddprint(v)
  ddprint(dd)
  
  y = 0
  for i in range(1, 2**m):
      nbits = x = 0
      for j in range(m):
          if (i >> j) % 2 > 0:
              x |= dd[j]
              nbits += 1
      nsegs = popcnt(x)
      s = 2 * (nbits % 2) - 1
      y += s * 2 ** (n - 1 - nsegs)
  print(2 ** (n - 1) - y)
  
problem_description: Statement
  
  We have a tree with N vertices numbered 1 to N. The i-th edge in this tree
  connects Vertex a_i and Vertex b_i.  
  Consider painting each of these edges white or black. There are 2^{N-1} such
  ways to paint the edges. Among them, how many satisfy all of the following M
  restrictions?
  
    * The i-th (1 \leq i \leq M) restriction is represented by two integers u_i and v_i, which mean that the path connecting Vertex u_i and Vertex v_i must contain at least one edge painted black.
samples: [{"input": "3\n    1 2\n    2 3\n    1\n    1 3", "output": "3\n    \n\nThe tree in this input is shown below:  \n  \n![Figure](https://img.atcoder.jp/ghi/5b0208ab1e3bb39a5d4fb7bafbfc448e.png)  \n  \nAll of the M restrictions will be satisfied if Edge 1 and 2 are respectively\npainted (white, black), (black, white), or (black, black), so the answer is 3.\n\n* * *"}, {"input": "2\n    1 2\n    1\n    1 2", "output": "1\n    \n\nThe tree in this input is shown below:  \n  \n![Figure](https://img.atcoder.jp/ghi/d08b3f53dfa4857fe9ffe13fa5d7ae69.png)  \n  \nAll of the M restrictions will be satisfied only if Edge 1 is painted black,\nso the answer is 1.\n\n* * *"}, {"input": "5\n    1 2\n    3 2\n    3 4\n    5 3\n    3\n    1 3\n    2 4\n    2 5", "output": "9\n    \n\nThe tree in this input is shown below:  \n  \n![Figure](https://img.atcoder.jp/ghi/386502bb3c85e0bb5aee64e4e7c087a1.png)  \n  \n\n* * *"}, {"input": "8\n    1 2\n    2 3\n    4 3\n    2 5\n    6 3\n    6 7\n    8 6\n    5\n    2 7\n    3 5\n    1 6\n    2 8\n    7 8", "output": "62\n    \n\nThe tree in this input is shown below:  \n  \n![Figure](https://img.atcoder.jp/ghi/955fa8fd8af658abb24ff2f68b9997be.png)"}]