时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
            空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
             64bit IO Format: %lld
        
     
    题目描述
        
        
    
            
            
	给定两个长度为 

 的序列 

。
	
定义 
%7D%5Ctimes%20g_%7B%5Cmax(i%2Cj)%7D) 
	
	同时有 

 次操作:
	- 
		 :令 :令  
	- 
		 :令 :令  
	
	注意每次修改不是独立的,本次修改会影响后续的询问。
	
	jackle 想让你告诉他每次操作之后 

 的值是多少?
	
由于答案很大,请输出答案对 

 取模之后的结果。
输入描述:
                                                    第一行输入  个正整数
 个正整数 ) ,分别表示序列长度,操作次数。
,分别表示序列长度,操作次数。
第二行输入  个正整数
 个正整数 ) 。
。
第三行输入  个正整数
 个正整数 ) 。
。
接下来  行,每行输入三个整数
 行,每行输入三个整数  ,其中
,其中  ,
, ,
, 。
。
                                                                            输出描述:
                                                    输出  行,每行一个整数,表示本次操作结束之后
 行,每行一个整数,表示本次操作结束之后  的值是多少。(答案对
 的值是多少。(答案对  取模)
 取模)
                                                                            
                        
                            示例1
                        
                        
                            
                                输入
                                复制
                                
                                
                                    4 3
1 2 3 4
4 3 2 1
1 2 1
2 3 4
1 4 9
                                 
                             
                            
                                                     
                     
                                    
                        
                            示例2
                        
                        
                            
                                输入
                                复制
                                
                                
                                    3 2
1 1 1
2 2 2
1 1 3
2 2 9