时间限制:C/C++/Rust/Pascal 5秒,其他语言10秒
            空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
             64bit IO Format: %lld
        
     
    题目描述
        
        
    
            
            
	我给你们黑幕。
                                —— 氧气少年 Kevin
氧气少年组织了几轮抽奖活动。
有 

 名同学连续参加
氧气少年组织的 

 轮抽奖活动,每轮抽奖活动的流程如下:
	- 
		 氧气少年从 
 名同学中随机地选择 
 名同学,给这 
 名同学发奖品;
	 
	- 
		 随后,氧气少年看到连续多次没得到奖品的同学后于心不忍,于是决定给他们"黑幕",即:给这 
 名同学中的连续 
 轮(包含当前这一轮)没得到奖品的同学发奖品。
	 
请求出这 

 轮抽奖过后,
氧气少年发出奖品总数的期望。
可以证明,答案可以表示成 

 的形式。其中,
%3D1%2Cq%5Cmod%20998244353%5Cneq%200)
。因此你只需输出 

 即可。
 
                            输入描述:
                                                    第一行包含一个整数 
,表示测试用例的组数。
对于每组测试用例:
仅输入一行,包含四个整数 
。
                                                                            输出描述:
                                                    对于每组测试用例:
仅输出一行,包含一个整数,表示答案。
                                                                            
                        
                            示例1
                        
                        
                            
                                输入
                                复制
                                
                                
                                    4
1 1 1 1
2 2 1 1
2 2 1 2
1924 1125 719 72
                                 
                             
                            
                                                            
                                    说明
                                    
                                        对于第三组测试用例:
用实数表示的答案是 
。