1785 树的应用


Submit solution

Points: 100
Time limit: 2.0s
Memory limit: 32M

Problem types
Allowed languages
C, C++, Java, Python

Description

一棵节点个数为n的树, 共有n-1条边. 每条边都有一个颜色属性,黑色或者白色. 对于一棵给定的树,如果把所有的黑色边去掉,那么这棵树将变成多个部分(连通分支).

树上两个不同的节点u,v都有一条唯一的最短路径(u->v). 现在有一个操作,就是把u到v的路径上的所有边的属性反转(黑色变白色,白色变黑色).

给定一棵树(初始时,边全部都是黑色的!!!)和m个操作,输出每个操作之后树的连通分支数(无视黑色边);

Input

多组数据.每组数据第一行两个整数n,m(1<=n,m<=50000). 接下来n-1行,每行两个数a,b(1<=a,b<=n, a!=b)表示这棵树的边.然后是m行,每行两个整数u,v(1<=u,v<=n, u!=v).

Output

每组数据输出m行,答案...

Sample

Input

3 3
1 2
1 3
1 2
1 3
2 3

Output

2
1
3

Hint

huge input ,scanf and printf are recommemded


Source: dd


Comments

There are no comments at the moment.