给出一棵以 为根且包含
个节点的树,每个节点都有初始颜色
。
表示黑色,
表示白色。
如果这棵树的任意节点 都满足:在以
为根的子树中(包含
),黑色节点数量不少于白色节点数量,这棵树就是符合要求的。更正式得说,对于以
为根的子树(包含
),设
为黑色节点数量,
为白色节点数量。如果
,都有
,那么这棵树就是符合要求的。
现在有一种补全操作:选择任意一个节点 ,然后给
添加一个儿子节点
,节点
染黑或染白。
如果至少需要执行 次补全操作,才能使这棵树符合要求,那么称这棵树的满意度为
。
现在有 次修改,每次修改用二元组
表示,意思是将节点
修改成颜色
,如果
表示白色,
表示黑色。在每次修改结束后,输出这棵树的满意度。
需要注意的是,修改操作不是独立的,也就是说,第 次修改操作是在第
次修改操作后的树上进行的。
第一行包含两个整数
,分别表示树节点个数和修改次数。
第二行包含
个整数
,分别表示
个节点的颜色,
表示白色,
表示黑色。
接下来
行,每行包含两个整数
,表示一条连接
和
的树边。
接下来
行,每行包含一个二元组
,表示将节点
修改为颜色
。
输出行,每行包含一个整数,表示第
次操作后的满意度。
输入较多,建议使用较快的读入方式,比如scanf。