Description: An edge-weighted tree of $$$n$$$ nodes is given with each edge colored in some color. Each node of this tree can be blocked or unblocked, all nodes are unblocked initially. A simple path is a path in a graph that does not have repeating nodes. The length of a path is defined as the sum of weights of all edges on the path. A path is good when it is a simple path consisting of edges of the same color $$$c$$$, all edges of color $$$c$$$ are on this path, and every node on the path is unblocked. You need to operate $$$2$$$ kinds of queries: 1. block a node, 2. unblock a node. After each query, print the maximum length among all good paths. If there are no good paths, print $$$0$$$. Input Format: The first line contains two integers $$$n$$$, $$$q$$$ ($$$1 \leq n,q \leq 2\cdot 10^5$$$) β the number of nodes and the number of queries. Then $$$n-1$$$ lines follow, each containing four integers $$$u$$$, $$$v$$$, $$$w$$$ and $$$c$$$ ($$$1 \leq u,v,w,c \leq n$$$; $$$u \not = v$$$), denoting a weighted edge connecting node $$$u$$$ and node $$$v$$$ with weight $$$w$$$ and color $$$c$$$. It is guaranteed that these edges form a tree. Then $$$q$$$ lines follow, each containing two integers $$$p$$$ and $$$x$$$ ($$$p = 0$$$ or $$$p = 1$$$, $$$1\leq x\leq n$$$), denoting a query: 1. if $$$p = 0$$$, block the node $$$x$$$. It's guaranteed that it's not blocked at this time; 2. if $$$p = 1$$$, unblock the node $$$x$$$. It's guaranteed that it's blocked at this time. Output Format: For each query, print the maximum length of a good path. If there are no good paths, print $$$0$$$. Note: None