#arc161b. [arc161_b]Exactly Three Bits

[arc161_b]Exactly Three Bits

問題文

正整数 XX に対し,「 XX22 進法表記したときに現れる 11 の個数」を f(X)f(X) とします. たとえば,$6 = 110_{(2)}, \\ 11 = 1011_{(2)}, \\ 16 = 10000_{(2)}$ なので,f(6)=2,f(11)=3,f(16)=1f(6) = 2, \\ f(11) = 3, \\ f(16) = 1 です.

正整数 NN が与えられます. NN 以下の正整数 XX であって,f(X)=3f(X) = 3 を満たすものが存在するかどうかを判定し,存在するならその最大値を求めてください.

TT 個のテストケースが与えられるので,それぞれについて答えてください.

制約

  • 1leqTleq1051 \\leq T \\leq 10^5
  • 1leqNleq10181 \\leq N \\leq 10^{18}

入力

入力は以下の形式で標準入力から与えられる. NiN_iii 番目のテストケースにおける NN の値を表す.

TT N1N_1 N2N_2 vdots\\vdots NTN_T

出力

TT 行出力せよ. ii 行目には,NiN_i 以下の正整数 XX であって,f(X)=3f(X) = 3 を満たすものの最大値を出力せよ. ただし,そのような正整数 XX が存在しない場合には -1 を出力せよ.


入力例 1

4
16
161
4
1000000000000000000

出力例 1

14
161
-1
936748722493063168
  • 11 つ目のテストケースについて,f(14)=3,f(15)=4,f(16)=1f(14) = 3, \\ f(15) = 4, \\ f(16) = 1 なので,Xleq16X \\leq 16 かつ f(X)=3f(X) = 3 を満たす最大の正整数 XX1414 です.
  • 22 つ目のテストケースについて,f(161)=3f(161) = 3 なので,Xleq161X \\leq 161 かつ f(X)=3f(X) = 3 を満たす最大の正整数 XX161161 です.
  • 33 つ目のテストケースについて,f(1)=1,f(2)=1,f(3)=2,f(4)=1f(1) = 1, \\ f(2) = 1, \\ f(3) = 2, \\ f(4) = 1 なので,Xleq4X \\leq 4 かつ f(X)=3f(X) = 3 を満たす正整数 XX は存在しません.
  • 44 つ目のテストケースのように,入出力値が 32bit 整数型に収まらないこともあります.