#P9848. Expectation (Hard Version)

Expectation (Hard Version)

Expectation (Hard Version)

Problem Description

Note: The only difference between the easy and hard versions is the range of nn and mm . You are to play a game for nn times. Each time you have the probability ab\frac ab to win. If you win, you will get kmk^m score, where kk is the total times you win at that time, otherwise you won't get any score. Your final score is the sum of the score you get each time. For instance, if n=5,m=10n=5, m=10, and you win twice in total, your final score is 110+210=10251^{10} + 2^{10}=1025. Now you wonder the expectation of your final score modulo 998244353998244353.

Input

The first line of the input contains an integer T (1T20)T\ (1\le T\le 20), indicating the number of the test cases. The next TT lines, each line has four integers $n, m, a, b\ (1\le m\le 10^6, 1 \le n,a,b < 998244353)$, indicating the number of games you play, the power of kk is mm, and the probatility to win a game is ab\frac ab. It's guaranteed that m107\sum m\le 10^7.

Output

TT lines, each line has one interger, indicating the answer.

Sample Input

4
3 1 1 2
3 2 1 2
3 3 1 2
114514 1000000 123456789 987654321

Sample Output

748683267
4
748683273
733239168

Hint

In first three test cases, you have the probability of 38\frac 38 to win once, 38\frac 38 to win twice, 18\frac 18 to win three times. The expectation of your final score is $\frac 38\times 1^m+\frac 38\times(1^m+2^m)+\frac 18\times(1^m+2^m+3^m)$. So your first three answers are 94,4,334\frac 94,4,\frac{33}4.

Source

2023“钉耙编程”中国大学生算法设计超级联赛(5)