D - Sum Avoidance Editorial /

Time Limit: 5 sec / Memory Limit: 1024 MB

配点 : 1100

問題文

正整数 S, K が与えられます。正整数列 A = (A_1, A_2, \ldots, A_N) は、次の 2 条件を満たすとき、良い数列であるといいます。

  • 1\leq A_1 < A_2 < \cdots < A_N \leq S - 1 が成り立つ。
  • 任意の非負整数列 (x_1, x_2, \ldots, x_N) に対して \sum_{i=1}^NA_ix_i\neq S が成り立つ。

項数 N が最大であるような良い数列のうち、辞書順最小のものを A = (A_1, A_2, \ldots, A_N) とします。この数列の第 KA_K を出力してください。ただし K > N である場合には -1 と出力してください。

T 個のテストケースが与えられるので、それぞれについて答えを求めてください。

制約

  • 1\leq T\leq 1000
  • 3\leq S\leq 10^{18}
  • 1\leq K \leq S - 1

入力

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

T
\text{case}_1
\vdots
\text{case}_T

各テストケースは以下の形式で与えられます。

S K

出力

T 行出力してください。i 行目には、\text{case}_i に対する答えを出力してください。


入力例 1

13
3 1
3 2
7 1
7 2
7 3
7 4
10 1
10 2
10 3
10 4
10 5
2022 507
1000000000000000000 999999999999999999

出力例 1

2
-1
2
4
6
-1
3
6
8
9
-1
1351
-1

S = 3, 7, 10 の場合には、A は次の数列になります。

  • S=3 の場合:A = (2)
  • S=7 の場合:A = (2,4,6)
  • S=10 の場合:A = (3,6,8,9)

Score : 1100 points

Problem Statement

You are given positive integers S and K. A sequence of positive integers A = (A_1, A_2, \ldots, A_N) is said to be a good sequence when satisfying the following two conditions.

  • 1\leq A_1 < A_2 < \cdots < A_N \leq S - 1 holds.
  • \sum_{i=1}^NA_ix_i\neq S holds for any sequence of non-negative integers (x_1, x_2, \ldots, x_N).

Let A = (A_1, A_2, \ldots, A_N) be the lexicographically smallest of the good sequences with the maximum number N of terms. Print the K-th term A_K of this sequence, or -1 if K > N.

We will give you T test cases; solve each of them.

Constraints

  • 1\leq T\leq 1000
  • 3\leq S\leq 10^{18}
  • 1\leq K \leq S - 1

Input

Input is given from Standard Input in the following format:

T
\text{case}_1
\vdots
\text{case}_T

Each case is in the following format:

S K

Output

Print T lines. The i-th line should contain the answer for \text{case}_i.


Sample Input 1

13
3 1
3 2
7 1
7 2
7 3
7 4
10 1
10 2
10 3
10 4
10 5
2022 507
1000000000000000000 999999999999999999

Sample Output 1

2
-1
2
4
6
-1
3
6
8
9
-1
1351
-1

For the cases S = 3, 7, 10, the sequence A will be as follows.

  • For S=3: A = (2).
  • For S=7: A = (2,4,6).
  • For S=10: A = (3,6,8,9).