#CF2147A. 最短递增路径

最短递增路径

A. 最短递增路径

每次测试时间限制: 11
每次测试内存限制: 256256 兆字节

你现在位于点 (0,0)(0, 0),在一个矩形网格中,想要走到点 (x,y)(x, y)

为此,你可以执行一系列步骤。

  • 每一步都是向任一方向沿 xx 轴或 yy 轴移动一个正整数长度
  • 第一步必须沿 xx,第二步沿 yy 轴,第三步沿 xx 轴,依此类推。
    形式化地说,如果我们按顺序给步骤编号从 11 开始,那么奇数步必须沿 xx 轴移动,偶数步必须沿 yy 轴移动。
  • 此外,每一步的长度必须严格大于前一步的长度

输出到达 (x,y)(x, y) 所需的最小步数,如果不可能到达则输出 1-1


输入

每个测试包含多个测试用例。
第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。
接下来 tt 行,每行包含两个整数 xxyy1x,y1091 \le x, y \le 10^9)。


输出

对于每个测试用例,输出到达 (x,y)(x, y) 所需的最小步数,或者 1-1 如果不可能。


示例

输入:

10
1 2
5 6
4 2
1 1
2 1
3 3
5 1
5 4
752 18572
95152 2322

输出:

2
2
3
-1
-1
-1
-1
-1
2
3

注释

  • 在第二个测试用例中,你可以先沿 xx 轴移动 55(5,0)(5,0),再沿 yy 轴移动 66(5,6)(5,6)
  • 在第三个测试用例中,你可以先沿 xx 轴移动 11(1,0)(1,0),然后沿 yy 轴移动 22(1,2)(1,2),最后沿 xx 轴移动 33(4,2)(4,2)
  • 在第四个测试用例中,要到 (1,1)(1,1) 是不可能的,因为沿 xx 轴移动到 (1,0)(1,0) 后,下一步沿 yy至少要移动 22(因为必须严格大于前一步 11),这样 yy 坐标会变成 22 或更大,无法停在 11