#include <algorithm>
#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
const int MAX = 100005;
const int LG = 17;
vector<int> adj[MAX];
struct node
{
int a[11];
node()
{
memset(a, 63, sizeof(a));
}
void insert(int val)
{
a[10] = val;
sort(a, a + 11);
}
} vals[LG][MAX];
node merge(node x, node y)
{
node ans = x;
for (int i = 0; i < 11; i++)
ans.insert(y.a[i]);
return ans;
}
int par[LG][MAX], d[MAX];
void dfs(int p, int v)
{
par[0][v] = p;
for (int i = 1; i < LG; i++)
{
par[i][v] = par[i - 1][par[i - 1][v]];
vals[i][v] = merge(vals[i - 1][v], vals[i - 1][par[i - 1][v]]);
}
for (int i = 0; i < (int)adj[v].size(); i++)
{
int u = adj[v][i];
if (u != p)
{
d[u] = d[v] + 1;
dfs(v, u);
}
}
}
int get_parent(int v, int k)
{
for (int i = 0; i < LG; i++)
if ((1 << i) & k)
v = par[i][v];
return v;
}
int lca(int u, int v)
{
if (d[u] < d[v])
swap(u, v);
u = get_parent(u, d[u] - d[v]);
if (u == v)
return u;
for (int i = LG - 1; i >= 0; i--)
if (par[i][u] != par[i][v])
{
u = par[i][u];
v = par[i][v];
}
return par[0][v];
}
node get(int v, int k)
{
node ans;
for (int i = 0; i < LG; i++)
if ((1 << i) & k)
{
ans = merge(ans, vals[i][v]);
v = par[i][v];
}
return ans;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int n, m, q;
cin >> n >> m >> q;
for (int i = 0; i < n - 1; i++)
{
int u, v;
cin >> u >> v;
u--;
v--;
adj[u].push_back(v);
adj[v].push_back(u);
}
for (int i = 0; i < m; i++)
{
int c;
cin >> c;
c--;
vals[0][c].insert(i);
}
dfs(0, 0);
while (q--)
{
int u, v, k;
cin >> u >> v >> k;
u--;
v--;
int p = lca(u, v);
node x = get(u, d[u] - d[p]);
node y = get(v, d[v] - d[p] + 1);
node ans = merge(x, y);
int tmp = 0;
while (tmp < k && ans.a[tmp] < m)
tmp++;
k = tmp;
cout << k;
for (int i = 0; i < k; i++)
cout << " " << ans.a[i] + 1;
cout << "\n";
}
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgaW50IE1BWCA9IDEwMDAwNTsKY29uc3QgaW50IExHID0gMTc7CnZlY3RvcjxpbnQ+IGFkaltNQVhdOwpzdHJ1Y3Qgbm9kZQp7CglpbnQgYVsxMV07Cglub2RlKCkKCXsKCQltZW1zZXQoYSwgNjMsIHNpemVvZihhKSk7Cgl9Cgl2b2lkIGluc2VydChpbnQgdmFsKQoJewoJCWFbMTBdID0gdmFsOwoJCXNvcnQoYSwgYSArIDExKTsKCX0KfSB2YWxzW0xHXVtNQVhdOwpub2RlIG1lcmdlKG5vZGUgeCwgbm9kZSB5KQp7Cglub2RlIGFucyA9IHg7Cglmb3IgKGludCBpID0gMDsgaSA8IDExOyBpKyspCgkJYW5zLmluc2VydCh5LmFbaV0pOwoJcmV0dXJuIGFuczsKfQppbnQgcGFyW0xHXVtNQVhdLCBkW01BWF07CnZvaWQgZGZzKGludCBwLCBpbnQgdikKewoJcGFyWzBdW3ZdID0gcDsKCWZvciAoaW50IGkgPSAxOyBpIDwgTEc7IGkrKykKCXsKCQlwYXJbaV1bdl0gPSBwYXJbaSAtIDFdW3BhcltpIC0gMV1bdl1dOwoJCXZhbHNbaV1bdl0gPSBtZXJnZSh2YWxzW2kgLSAxXVt2XSwgdmFsc1tpIC0gMV1bcGFyW2kgLSAxXVt2XV0pOwoJfQoJZm9yIChpbnQgaSA9IDA7IGkgPCAoaW50KWFkalt2XS5zaXplKCk7IGkrKykKCXsKCQlpbnQgdSA9IGFkalt2XVtpXTsKCQlpZiAodSAhPSBwKQoJCXsKCQkJZFt1XSA9IGRbdl0gKyAxOwoJCQlkZnModiwgdSk7CgkJfQoJfQp9CmludCBnZXRfcGFyZW50KGludCB2LCBpbnQgaykKewoJZm9yIChpbnQgaSA9IDA7IGkgPCBMRzsgaSsrKQoJCWlmICgoMSA8PCBpKSAmIGspCgkJCXYgPSBwYXJbaV1bdl07CglyZXR1cm4gdjsKfQppbnQgbGNhKGludCB1LCBpbnQgdikKewoJaWYgKGRbdV0gPCBkW3ZdKQoJCXN3YXAodSwgdik7Cgl1ID0gZ2V0X3BhcmVudCh1LCBkW3VdIC0gZFt2XSk7CglpZiAodSA9PSB2KQoJCXJldHVybiB1OwoJZm9yIChpbnQgaSA9IExHIC0gMTsgaSA+PSAwOyBpLS0pCgkJaWYgKHBhcltpXVt1XSAhPSBwYXJbaV1bdl0pCgkJewoJCQl1ID0gcGFyW2ldW3VdOwoJCQl2ID0gcGFyW2ldW3ZdOwoJCX0KCXJldHVybiBwYXJbMF1bdl07Cn0Kbm9kZSBnZXQoaW50IHYsIGludCBrKQp7Cglub2RlIGFuczsKCWZvciAoaW50IGkgPSAwOyBpIDwgTEc7IGkrKykKCQlpZiAoKDEgPDwgaSkgJiBrKQoJCXsKCQkJYW5zID0gbWVyZ2UoYW5zLCB2YWxzW2ldW3ZdKTsKCQkJdiA9IHBhcltpXVt2XTsKCQl9CglyZXR1cm4gYW5zOwp9CmludCBtYWluKCkKewoJaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwoJY2luLnRpZSgwKTsKCWludCBuLCBtLCBxOwoJY2luID4+IG4gPj4gbSA+PiBxOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBuIC0gMTsgaSsrKQoJewoJCWludCB1LCB2OwoJCWNpbiA+PiB1ID4+IHY7CgkJdS0tOwoJCXYtLTsKCQlhZGpbdV0ucHVzaF9iYWNrKHYpOwoJCWFkalt2XS5wdXNoX2JhY2sodSk7Cgl9Cglmb3IgKGludCBpID0gMDsgaSA8IG07IGkrKykKCXsKCQlpbnQgYzsKCQljaW4gPj4gYzsKCQljLS07CgkJdmFsc1swXVtjXS5pbnNlcnQoaSk7Cgl9CglkZnMoMCwgMCk7Cgl3aGlsZSAocS0tKQoJewoJCWludCB1LCB2LCBrOwoJCWNpbiA+PiB1ID4+IHYgPj4gazsKCQl1LS07CgkJdi0tOwoJCWludCBwID0gbGNhKHUsIHYpOwoJCW5vZGUgeCA9IGdldCh1LCBkW3VdIC0gZFtwXSk7CgkJbm9kZSB5ID0gZ2V0KHYsIGRbdl0gLSBkW3BdICsgMSk7CgkJbm9kZSBhbnMgPSBtZXJnZSh4LCB5KTsKCQlpbnQgdG1wID0gMDsKCQl3aGlsZSAodG1wIDwgayAmJiBhbnMuYVt0bXBdIDwgbSkKCQkJdG1wKys7CgkJayA9IHRtcDsKCQljb3V0IDw8IGs7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBrOyBpKyspCgkJCWNvdXQgPDwgIiAiIDw8IGFucy5hW2ldICsgMTsKCQljb3V0IDw8ICJcbiI7Cgl9CglyZXR1cm4gMDsKfQo=