難しい和音

2 secs 1024 MB
riantkb's icon riantkb

問題文

数列 (Fn)n=0,1,(F_n)_{n=0, 1, \dots} を正整数 A,BA, B を用いて以下の漸化式により定義します。

Fn={A(n=0)B(n=1)Fn1+Fn2(n2)F_n = \begin{cases} A & ( n = 0 ) \\ B & ( n = 1 ) \\ F_{n-1} + F_{n-2} & ( n \ge 2 ) \end{cases}

ある正整数 MM を数列 (Fn)(F_n) のいくつかの要素の和として表すことを考えます。
つまり、M=Fp1+Fp2++Fpk (0p1<p2<<pk)M = F_{p_1} + F_{p_2} + \dots + F_{p_k} \ ( 0 \le p_1 \lt p_2 \lt \dots \lt p_k ) を満たす数列 pp を考えます。

このとき、数列 pp の要素数 kk としてありうる最大値を求めてください。
なお、数列 pp としてありうるものが存在しない場合は代わりに -1 と出力してください。

この問題では一つの入力につきテストケースが TT 個与えられます。

制約

  • 入力は全て整数
  • 1T50,0001 \le T \le 50{,}000
  • 1A,B,M10161 \le A, B, M \le 10^{16}

入力

入力は以下の形式で与えられます。

TT
A1A_1 B1B_1 M1M_1
:
ATA_T BTB_T MTM_T

出力

TT 行出力してください。
i (1iT)i \ (1 \le i \le T) 行目には ii ケース目 (Ai,Bi,Mi)(A_i, B_i, M_i) の答えを出力してください。

入出力例

入力例 1

9
1 1 2
1 1 9
5 1 21
2 1 200
1 2 200
12 3 456789
2 2 99
10 1 2
1 1 10000000000000000

出力例 1

2
4
3
6
7
15
-1
-1
52

提出


Go (1.21)