#include <bits/stdc++.h>
using namespace std;
const int N = 4e5 + 100;
const int D = 19;
int dep[N], fa[N][D], dis[N], to[N];
int n, k, r, q;
vector<int> g[N], p;
int findf(int x) {
  if (to[x] == x) return x;
  return to[x] = findf(to[x]);
}
void unite(int u, int v) {
  u = findf(u);
  v = findf(v);
  if (u != v) to[u] = v;
}
void dfs(int u, int f) {
  dep[u] = dep[f] + 1;
  fa[u][0] = f;
  for (int i = 1; i < D; ++i) fa[u][i] = fa[fa[u][i - 1]][i - 1];
  for (auto v : g[u])
    if (v != f) dfs(v, u);
}
void bfs() {
  for (int i = 1; i < n * 2; ++i) dis[i] = -1;
  queue<int> Q;
  for (auto u : p) dis[u] = 0, Q.push(u);
  while (!Q.empty()) {
    int u = Q.front();
    Q.pop();
    if (dis[u] >= k) continue;
    for (auto v : g[u]) {
      unite(u, v);
      if (dis[v] == -1) {
        dis[v] = dis[u] + 1;
        Q.push(v);
      }
    }
  }
}
int get(int u, int d) {
  for (int i = 0; i < D; ++i) {
    if (d & 1) u = fa[u][i];
    d >>= 1;
  }
  return u;
}
int lca(int u, int v) {
  if (dep[u] < dep[v]) swap(u, v);
  u = get(u, dep[u] - dep[v]);
  if (u == v) return u;
  for (int i = D - 1; i >= 0; i--) {
    if (fa[u][i] == fa[v][i]) continue;
    u = fa[u][i];
    v = fa[v][i];
  }
  return fa[u][0];
}
int walk(int u, int v, int w) {
  if (dep[u] - dep[w] >= k)
    return get(u, k);
  else
    return get(v, dep[v] + dep[u] - 2 * dep[w] - k);
}
bool check(int u, int v) {
  int w = lca(u, v);
  if (dep[u] + dep[v] - 2 * dep[w] <= 2 * k) return true;
  u = walk(u, v, w);
  v = walk(v, u, w);
  u = findf(u);
  v = findf(v);
  return u == v;
}
int main() {
  scanf("%d %d %d", &n, &k, &r);
  for (int i = 1; i < n; ++i) {
    int u, v;
    scanf("%d %d", &u, &v);
    g[u].push_back(i + n);
    g[v].push_back(i + n);
    g[i + n].push_back(u);
    g[i + n].push_back(v);
  }
  while (r--) {
    int u;
    scanf("%d", &u);
    p.push_back(u);
  }
  for (int i = 1; i < n * 2; ++i) to[i] = i;
  bfs();
  dfs(1, 1);
  scanf("%d", &q);
  while (q--) {
    int u, v;
    scanf("%d %d", &u, &v);
    if (check(u, v))
      printf("YES\n");
    else
      printf("NO\n");
  }
}
