空间隧道
题号:NC17069
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

    袋鼠先生的王国有n座城市,城市之间有n-1条长度为1的双向道路,任意两座城市都可以通过这些双向道路互通。袋鼠先生王国的商业十分发达,对于任意两座不同的城市A, B,都有一支从A通往B的商队,以及一支从B通往A的商队,商队一定会沿着最短路径行进。
    某一天袋鼠先生王国突然出现了m条空间隧道,每条空间隧道连接两个不同的城市。当一支商队行进到某条空间隧道的一端时,如果隧道的另一端也在这支商队的线路上,那商队会直接穿越隧道到达另一端并继续前进。
    不幸的是,这些空间隧道其实是敌对势力的阴谋,某一天敌对势力对空间隧道发动了奇袭,所有穿过了空间隧道的商队都被俘获了。现在袋鼠先生希望你帮他统计有多少商队还存留着。

输入描述:

第一行两个整数n, m(2≤n≤100,000,1≤m≤100,000)代表城市数量以及空间隧道的数量。
接下来n-1行每行两个不同的整数A, B代表城市A, B之间存在一条双向道路。
接下来m行每行两个不同的整数x, y代表城市x, y之间出现了一条空间隧道。

输出描述:

输出一个整数表示有多少商队还存留着。
示例1

输入

复制
5 2
1 2
2 3
1 4
4 5
1 3
4 5

输出

复制
8