A Tree and Two Edges

아직 제출이 없습니다시간 제한3초메모리 제한2048 MB

문제

Given a connected simple graph (with at most one edge between any pair of nodes) with nn nodes and n+1n+1 edges (that's a tree with two extra edges), answer a list of queries: for two distinct nodes, how many simple paths are there between them? A simple path is a path that does not repeat nodes.

입력

The first line of input contains two integers nn (4n5×1044 \le n \le 5 \times 10^4) and qq (1q5×1041 \le q \le 5 \times 10^4), where nn is the number of nodes and qq is the number of queries. The nodes are numbered from 11 to nn.

Each of the next n+1n+1 lines contains two integers aa and bb (1a<bn1 \le a < b \le n) indicating that there is an edge in the graph between nodes aa and bb. All edges are distinct.

Each of the next qq lines contains two integers uu and vv (1u<vn1 \le u < v \le n). This is a query for the number of simple paths between nodes uu and vv.

출력

Output qq lines. On each line output a single integer, which is the number of simple paths between the query nodes. Output the answers to the queries in the order they appear in the input.