#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];
bool d[M];
void BFS(int A, int B){
queue<int> q;
vector<int> trace(n + 1, 0);
d[A] = 1; q.push(A);
trace[A] = -1;
while (q.size()){
int u = q.front(); q.pop();
for (int v: a[u]) if (trace[v] == 0){
trace[v] = u;
if (v == B) break;
q.push(v);
}
}
while (B != A){
d[B] = 1; B = trace[B];
}
}
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);
}
int q; cin >>q;
while (q--){
int A, B; cin >>A >>B;
BFS(A, B);
}
int cnt = 0;
rep(u, 1, n) if (d[u] == 0) ++cnt;
cout <<cnt;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGJpdChuLCBpKSAoKG4gPj4gaSkgJiAxKQojZGVmaW5lIGFsbChhKSBhLmJlZ2luKCksIGEuZW5kKCkKI2RlZmluZSByZXAoaSwgeCwgbikgZm9yIChpbnQgaSA9IHg7IGkgPD0gbjsgKytpKQojZGVmaW5lIHJlZChpLCB4LCBuKSBmb3IgKGludCBpID0geDsgaSA+PSBuOyAtLWkpCiNkZWZpbmUgaW5wKGEpIGZyZW9wZW4oYSIuaW5wIiwgInIiLCBzdGRpbiksIGZyZW9wZW4oYSIub3V0IiwgInciLCBzdGRvdXQpCgp0ZW1wbGF0ZTxjbGFzcyBBLCBjbGFzcyBCPiBpbmxpbmUgdm9pZCBtYXhpbWl6ZShBICZ4LCBCIHkpIHt4ID0gbWF4KHgsIHkpO307CnRlbXBsYXRlPGNsYXNzIEEsIGNsYXNzIEI+IGlubGluZSB2b2lkIG1pbmltaXplKEEgJngsIEIgeSkge3ggPSBtaW4oeCwgeSk7fTsKCmNvbnN0IGludCBOID0gMWUzICsgNTsKY29uc3QgaW50IE0gPSAyZTUgKyA1Owpjb25zdCBsbCBNT0QgPSAxZTkgKyA3OwoKCmludCBuOwp2ZWN0b3I8aW50PiBhW01dOwoKYm9vbCBkW01dOwoKdm9pZCBCRlMoaW50IEEsIGludCBCKXsKICAgIHF1ZXVlPGludD4gcTsKICAgIHZlY3RvcjxpbnQ+IHRyYWNlKG4gKyAxLCAwKTsKCiAgICBkW0FdID0gMTsgcS5wdXNoKEEpOwogICAgdHJhY2VbQV0gPSAtMTsKCiAgICB3aGlsZSAocS5zaXplKCkpewogICAgICAgIGludCB1ID0gcS5mcm9udCgpOyBxLnBvcCgpOwoKICAgICAgICBmb3IgKGludCB2OiBhW3VdKSBpZiAodHJhY2Vbdl0gPT0gMCl7CiAgICAgICAgICAgIHRyYWNlW3ZdID0gdTsKCiAgICAgICAgICAgIGlmICh2ID09IEIpIGJyZWFrOwoKICAgICAgICAgICAgcS5wdXNoKHYpOwogICAgICAgIH0KICAgIH0KCiAgICB3aGlsZSAoQiAhPSBBKXsKICAgICAgICBkW0JdID0gMTsgQiA9IHRyYWNlW0JdOwogICAgfQp9CmludCBtYWluKCl7CiAgICBjaW4udGllKDApIC0+IHN5bmNfd2l0aF9zdGRpbygwKTsKCiAgICBjaW4gPj5uOwoKICAgIHJlcChpLCAyLCBuKXsKICAgICAgICBpbnQgdSwgdjsgY2luID4+dSA+PnY7CgogICAgICAgIGFbdV0ucGIodik7IGFbdl0ucGIodSk7CiAgICB9CgogICAgaW50IHE7IGNpbiA+PnE7CgogICAgd2hpbGUgKHEtLSl7CiAgICAgICAgaW50IEEsIEI7IGNpbiA+PkEgPj5COwogCiAgICAgICAgQkZTKEEsIEIpOwogICAgfQoKICAgIGludCBjbnQgPSAwOwogICAgcmVwKHUsIDEsIG4pIGlmIChkW3VdID09IDApICsrY250OwogICAgCiAgICBjb3V0IDw8Y250OwoKICAgIHJldHVybiAwOwp9Cg==