#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define ll long long
#define bit(n, i) ((n >> i) & 1)
#define all(a) a.begin(), a.end()
#define rep(i, x, n) for (int i = x; i <= n; ++i)
#define red(i, x, n) for (int i = x; i >= n; --i)
#define inp(a) freopen(a".inp", "r", stdin), freopen(a".out", "w", stdout)
template<class A, class B> inline void maximize(A &x, B y) {x = max(x, y);};
template<class A, class B> inline void minimize(A &x, B y) {x = min(x, y);};
const int N = 1e3 + 5;
const int M = 2e5 + 5;
const ll MOD = 1e9 + 7;
int n;
vector<int> a[M];
int h[M], p[20][M];
void dfs(int u){
for (int v: a[u]){
if (v == p[0][u]) continue;
p[0][v] = u; h[v] = h[u] + 1;
rep(i, 1, 17) p[i][v] = p[i - 1][p[i - 1][v]];
dfs(v);
}
}
int LCA(int u, int v){
if (h[u] < h[v]) swap(u, v);
int k = h[u] - h[v];
red(i, 17, 0) if (bit(k, i))
u = p[i][u];
if (u == v) return v;
red(i, 17, 0) if (p[i][u] != p[i][v]){
u = p[i][u]; v = p[i][v];
}
return p[0][u];
}
int d[M];
void DFS(int u){
for (int v: a[u]){
if (v == p[0][u]) continue;
DFS(v);
d[u] += d[v];
}
}
int main(){
cin.tie(0) -> sync_with_stdio(0);
cin >>n;
rep(i, 2, n){
int u, v; cin >>u >>v;
a[u].pb(v); a[v].pb(u);
}
dfs(1);
int q; cin >>q;
while (q--){
int u, v; cin >>u >>v;
int root = LCA(u, v);
++d[u]; ++d[v];
--d[root];
--d[p[0][root]];
}
DFS(1);
int ans = 0;
rep(u, 1, n) ans += (d[u] == 0);
cout <<ans;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGJpdChuLCBpKSAoKG4gPj4gaSkgJiAxKQojZGVmaW5lIGFsbChhKSBhLmJlZ2luKCksIGEuZW5kKCkKI2RlZmluZSByZXAoaSwgeCwgbikgZm9yIChpbnQgaSA9IHg7IGkgPD0gbjsgKytpKQojZGVmaW5lIHJlZChpLCB4LCBuKSBmb3IgKGludCBpID0geDsgaSA+PSBuOyAtLWkpCiNkZWZpbmUgaW5wKGEpIGZyZW9wZW4oYSIuaW5wIiwgInIiLCBzdGRpbiksIGZyZW9wZW4oYSIub3V0IiwgInciLCBzdGRvdXQpCgp0ZW1wbGF0ZTxjbGFzcyBBLCBjbGFzcyBCPiBpbmxpbmUgdm9pZCBtYXhpbWl6ZShBICZ4LCBCIHkpIHt4ID0gbWF4KHgsIHkpO307CnRlbXBsYXRlPGNsYXNzIEEsIGNsYXNzIEI+IGlubGluZSB2b2lkIG1pbmltaXplKEEgJngsIEIgeSkge3ggPSBtaW4oeCwgeSk7fTsKCmNvbnN0IGludCBOID0gMWUzICsgNTsKY29uc3QgaW50IE0gPSAyZTUgKyA1Owpjb25zdCBsbCBNT0QgPSAxZTkgKyA3OwoKCmludCBuOwp2ZWN0b3I8aW50PiBhW01dOwoKaW50IGhbTV0sIHBbMjBdW01dOwoKdm9pZCBkZnMoaW50IHUpewogICAgZm9yIChpbnQgdjogYVt1XSl7CiAgICAgICAgaWYgKHYgPT0gcFswXVt1XSkgY29udGludWU7CiAKICAgICAgICBwWzBdW3ZdID0gdTsgaFt2XSA9IGhbdV0gKyAxOwogCiAgICAgICAgcmVwKGksIDEsIDE3KSBwW2ldW3ZdID0gcFtpIC0gMV1bcFtpIC0gMV1bdl1dOwogCiAgICAgICAgZGZzKHYpOwogICAgfQp9CgppbnQgTENBKGludCB1LCBpbnQgdil7CiAgICBpZiAoaFt1XSA8IGhbdl0pIHN3YXAodSwgdik7CiAKICAgIGludCBrID0gaFt1XSAtIGhbdl07CiAKICAgIHJlZChpLCAxNywgMCkgaWYgKGJpdChrLCBpKSkKICAgICAgICB1ID0gcFtpXVt1XTsKIAogICAgaWYgKHUgPT0gdikgcmV0dXJuIHY7CiAKICAgIHJlZChpLCAxNywgMCkgaWYgKHBbaV1bdV0gIT0gcFtpXVt2XSl7CiAgICAgICAgdSA9IHBbaV1bdV07IHYgPSBwW2ldW3ZdOwogICAgfSAgCiAKICAgIHJldHVybiBwWzBdW3VdOwp9CgppbnQgZFtNXTsKCnZvaWQgREZTKGludCB1KXsKICAgIGZvciAoaW50IHY6IGFbdV0pewogICAgICAgIGlmICh2ID09IHBbMF1bdV0pIGNvbnRpbnVlOwoKICAgICAgICBERlModik7CgogICAgICAgIGRbdV0gKz0gZFt2XTsKICAgIH0KfQppbnQgbWFpbigpewogICAgY2luLnRpZSgwKSAtPiBzeW5jX3dpdGhfc3RkaW8oMCk7CgogICAgY2luID4+bjsKCiAgICByZXAoaSwgMiwgbil7CiAgICAgICAgaW50IHUsIHY7IGNpbiA+PnUgPj52OwoKICAgICAgICBhW3VdLnBiKHYpOyBhW3ZdLnBiKHUpOwogICAgfQoKICAgIGRmcygxKTsKCiAgICBpbnQgcTsgY2luID4+cTsKCiAgICB3aGlsZSAocS0tKXsKICAgICAgICBpbnQgdSwgdjsgY2luID4+dSA+PnY7CiAKICAgICAgICBpbnQgcm9vdCA9IExDQSh1LCB2KTsKIAogICAgICAgICsrZFt1XTsgKytkW3ZdOwogICAgICAgIC0tZFtyb290XTsKICAgICAgICAtLWRbcFswXVtyb290XV07CiAgICB9CgogICAgREZTKDEpOwoKICAgIGludCBhbnMgPSAwOwogICAgcmVwKHUsIDEsIG4pIGFucyArPSAoZFt1XSA9PSAwKTsKCiAgICBjb3V0IDw8YW5zOwoKICAgIHJldHVybiAwOwp9Cg==