敌军占领了 N 个要塞(编号为 [0,N-1] ),有 M 条补给通道连接了部分要塞,使得补给通道连接的要塞之间可以互相支援。
不同的要塞如果通过补给通道可以直接的或者间接地连接,这些要塞将会形成一个可以互相辅助的、战力较强的庞大的军团。
我军将要发起代号为“黎明利刃”的要塞攻坚战。本次战争,我军将集结优势兵力,逐个击破敌军的 K 个不同的要塞,每个要塞一旦被击破,连接该要塞的补给通道也将被我军控制,从而实现将敌方的大军团瓦解为若干互相独立的小军团的目标,削弱、瓦解敌方战力,从而方便我军逐个击破。
请编程计算出,根据给定的数据,我军按约定的顺序,每击破敌军一个要塞,敌军剩余军团的数量。
第 1 行有 2 个整数 N,M ,代表敌人要塞的数量(要塞编号 0 \sim n-1 ),以及要塞之间的补给通道的数量。
接下来 M 行,每行有 2 个整数 x,y,代表编号为 x 的要赛和编号为 y 的要塞之间有一条双向的补给通道。
接下来一行,读入整数 K,表示我军本次战役计划占领敌军要塞的数量。
接下来 K 行,有 K 个不同的整数(数值在 [0,n-1] 之间),代表了我军将按照顺序占领敌军要塞的编号。
第 1 行输出战役发起之前,敌军军团总数。
接下来 K 行,每行输出一个整数,代表了我军按照顺序占领敌军某个要塞之后,敌军军团总数。
6 8 0 1 3 0 5 0 1 3 2 1 5 2 4 2 5 4 4 2 0 5 4
1 1 2 2 1
7 6 2 0 1 3 5 6 1 5 6 2 0 6 6 3 1 6 2 0 4
2 2 2 3 3 2 1
17 10 6 15 13 0 5 2 13 12 8 9 12 5 15 10 12 9 1 12 5 7 5 11 3 8 9 5
7 6 5 5 5 7
【数据范围】
对于 30\% 的数据,1\le M \le 1000,1\le N \le 2M,x \neq y,1 \le K \le N。
对于 100\% 的数据,1\le M \le 2\times 10^5,1\le N \le 2M,x \neq y,1 \le K \le N。
对于所有的数据点,任意两个相同的要塞之间,最多只存在 1 条补给通道。