6631 - 暗的连锁

通过次数

0

提交次数

0

时间限制 : 1 秒
内存限制 : 128 MB

Dark是一个无向图,图中有N个结点和两类边,一类边被称为主要边,而另一类被称为附加边。Dark有N-1条主要边,并且Dark的任意两个结点之间都存在一条只由主要边构成的路径。另外,Dark还有M条附加边。

你的任务是把Dark斩为不连通的两部分。一开始Dark的附加边都处于无敌状态,你只能选择一条主要边切断。一旦你切断了一条主要边,Dark就会进入防御模式,主要边会变成为无敌的,而附加边可以被切断。但是你的能力智能再切断Dark的一条附加边。现在你想要知道,一共有多少种方案可以击败Dark。注意,就算你第一步切断主要边之后就已经把Dark斩为两截,你也需要切断一条附加边才算击败了Dark。

 

输入

第一行包含两个整数N和M。

之后N-1行,每行包括两个整数A和B,表示A和B之间有一条主要边。

之后M行以同样的格式给出附加边。

 

输出

输出一个整数表示结果。

 

样例

输入

4 1
1 2
2 3
1 4
3 4

输出

3

提示

对于20%的数据,N≤100,M≤100。

对于100%的数据,N≤100000,M≤200000。数据保证结果不超过。

 

来源

一本通提高