题号:NC23058
                        时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
            空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
             64bit IO Format: %lld
        
     
    题目描述
        
        
    
            
              小 X 决定出一道送温暖题来和大家一起愉悦
 他给了你一棵 n 个节点的树,每个点有个点权 
 
  现在他给了你 Q 个询问,每次会给定 L,R ,然后定义满足 

 的点 i 为关键点
 你需要回答出满足下列至少一个条件的点 x 的个数:
 1. x 是关键点
 2. 在树上删去 x 和所有与其相连的边后,存在两个关键点 a,b ,使得 a 和 b 不连通 
输入描述:
                                                    第一行两个整数 n,Q 
第二行 n 个整数,表示  
 
接下来 n - 1 行,每行两个整数 u,v ,表示树上有一条连接点 u 和点 v 的边
接下来 Q 行,每行两个整数 L,R
                                                                            输出描述:
                                                    Q 行,每行一个整数,表示本次询问的答案
                                                                            
                        
                            示例1
                        
                        
                            
                                输入
                                复制
                                
                                
                                    5 4
7 7 7 1 10
1 2
1 3
2 4
2 5
1 10
1 7
7 10
1 1
                                 
                             
                            
                                                     
                     
                                                        备注:
                对于所有的数据,保证 

为了防止被卡常,请使用读入优化
在此顺便提供一个硬核优化:https://blog.csdn.net/sjzezwzy/article/details/81053639