#arc127f. [arc127_f]±AB

[arc127_f]±AB

問題文

整数 A,B,V,MA,B,V,M が与えられます. ここで,AABB は互いに素であることが保証されます. また,あなたは整数 xx を持っています. 最初,x=Vx=V です.

あなたは,以下の 44 種類の操作を好きな順序で好きな回数繰り返すことができます.

  • xx の値を,x+Ax+A で置き換える.

  • xx の値を,xAx-A で置き換える.

  • xx の値を,x+Bx+B で置き換える.

  • xx の値を,xBx-B で置き換える.

ただし,操作のどの瞬間においても,0leqxleqM0 \\leq x \\leq M が成立している必要があります.

この条件の元で,xx がとりうる値が何種類あるかを求めてください.

一つの入力ファイルにつき,TT 個のテストケースを解いてください.

制約

  • 1leqTleq1051 \\leq T \\leq 10^5
  • 1leqA<BleqMleq1091 \\leq A < B \\leq M \\leq 10^9
  • AABB は互いに素である.
  • 0leqVleqM0 \\leq V \\leq M
  • 入力される値はすべて整数である.

入力

入力は以下の形式で標準入力から与えられる.

TT case1case_1 case2case_2 vdots\\vdots case3case_3

各ケースは以下の形式で与えられる.

AA BB VV MM

出力

各ケースについて答えを出力せよ.


入力例 1

5
3 5 0 5
1 2 5 10
5 8 4 9
10 99 48 106
500000000 500000001 123456789 900000000

出力例 1

4
11
4
10
800000002

11 つ目のテストケースでは,x=0,2,3,5x=0,2,3,544 通りの値が考えられます.