#include
#include
#include
#include
#define MAXN 500001
using namespace std;
vector
bitset
bitset
/*
void ilosc_poddrzew(int a)
{
int wynik = 0;
bool x = 0;
for(int i = 1; i <= a; i++)
{
if(strajk[i] && galezie[i].size() > 1)
{
for(int j = 0; j < galezie[i].size(); j++)
{
//printf("%d ",galezie[i][j]);
if(strajk[galezie[i][j]] == 0) wynik++;
/*if(x == 0)
{
wynik--;
x++;
}//
}
}
if(galezie[i].size() == 1 && wynik == 0 && strajk[i]) wynik++;
}
printf("%d\n",wynik);
}
*/
int main()
{
int n, x, y, m, pomoc_strajki;
int wynik = 1;
scanf("%d",&n);
for(int i = 1; i < n; i++)
{
scanf("%d%d",&x,&y);
galezie[x].push_back(y);
galezie[y].push_back(x);
}
scanf("%d",&m);
for(int i = 0; i < m; i++)
{
scanf("%d",&pomoc_strajki);
if(pomoc_strajki > 0) strajk[pomoc_strajki].flip();
else strajk[pomoc_strajki * -1].flip();
if(pomoc_strajki > 0)
{
wynik--;
for(int j = 0; j < galezie[pomoc_strajki].size(); j++)
if(strajk[galezie[pomoc_strajki][j]] == 0) wynik++;
}
else
{
wynik++;
for(int j = 0; j < galezie[-1 *pomoc_strajki].size(); j++)
if(strajk[galezie[-1 * pomoc_strajki][j]] == 0) wynik--;
}
//ilosc_poddrzew(n);
printf("%d",wynik);
}
}