Paths on the tree

Time Limit: 2000ms
Memory Limit: 131072KB
This problem will be judged on HDU. Original ID: 4912
64-bit integer IO format: %I64d      Java class name: Main

Description

bobo has a tree, whose vertices are conveniently labeled by 1,2,…,n.

There are m paths on the tree. bobo would like to pick some paths while any two paths do not share common vertices.

Find the maximum number of paths bobo can pick.

Input

The input consists of several tests. For each tests:

The first line contains n,m (1≤n,m≤105). Each of the following (n - 1) lines contain 2 integers ai,bi denoting an edge between vertices ai and bi (1≤ai,bi≤n). Each of the following m lines contain 2 integers ui,vi denoting a path between vertices ui and vi (1≤ui,vi≤n).

Output

For each tests:

A single integer, the maximum number of paths.

Sample Input

3 2
1 2
1 3
1 2
1 3
7 3
1 2
1 3
2 4
2 5
3 6
3 7
2 3
4 5
6 7

Sample Output

1
2

Source

Language: 
Theme: 
Share Code? 

Powered by NB231 | Current Style: .