#P13761. Chess

Chess

题目背景

小 P 最喜欢玩象棋了!有一天他看到一个软件名叫《万宁象棋》,玩了几次,结果输麻了,于是他来找你帮忙。

题目描述

万宁象棋的棋盘有 nnmm 列(可以把棋盘看做坐标系的第一象限),现在一局棋已经进入尾声。小 P 只有一个象和一个帅,象在左下角 (1,1)(1,1) 的位置,而对方只有一个将在右上角 (n,m)(n,m) 的位置。

已知现在小 P 先手。他每次可以移动象,象走“田”字,但不能走出棋盘外,且受到塞象眼的限制;或者也可以移动帅。假设帅的移动既不会影响象,也不会影响对方的将。

象的移动规则(了解中国象棋规则者可跳过):

象每次可以沿斜线方向走两格,即在“田”的左下角,右上角移动或在左上角,右下角移动。形式化的描述,假设象处在 (x,y)(x,y) 的位置,那么下一步可以到达 (x+2,y+2)(x+2,y+2)(x+2,y2)(x+2,y-2)(x2,y+2)(x-2,y+2)(x2,y2)(x-2,y-2) 这四个格子中的一个。

“塞象眼”即指“田”字的中间有棋子,也就是象走的两格的中间一格有棋子阻挡,则不能行走。

对方的将很傻,每次只会按照下 \rightarrow\rightarrow\rightarrow 右的顺序走,也就是从 (n,m)(n,m) 走到 (n1,m)(n-1,m),再走到 (n1,m1)(n-1,m-1),然后走到 (n,m1)(n,m-1),最后走回 (n,m)(n,m)

请你帮忙看一看,小 P 的象能不能吃掉对方的将。如果可以,则输出最小步数;如果不可以,输出 -1

输入格式

仅一行两个正整数 nnmm,表示棋盘有 nnmm 列。

输出格式

输出仅一个数。如果可以吃掉对方的将,输出最小步数,否则输出 1-1

6 5
2
4 4
3
4 5
-1

提示

【样例 1 解释】

小 P 的象先到 (3,3)(3,3),此时对方的将从 (6,5)(6,5) 到达 (5,5)(5,5)。下一步的象正好可以到 (5,5)(5,5),吃掉将,共计 22 步。

【样例 2 解释】

小 P 先动两步帅,使得对方的将到达 (3,3)(3,3),再移动象到达 (3,3)(3,3),吃掉将,共计 33 步。

【数据规模与约定】

对于 100%100\% 的数据,3n,m10183\leq n,m\leq 10^{18}

测试点 nn mm
11 3n103 \leq n \leq 10 m=nm=n
22 3m103 \leq m \leq 10
343\sim 4 3n5003 \leq n \leq 500 m=nm=n
565\sim 6 3m5003 \leq m \leq 500
797\sim 9 3n1053 \leq n \leq 10^5 m=nm=n
101210\sim 12 3m1053 \leq m \leq 10^5
131613\sim 16 3n10183 \leq n \leq 10^{18} m=nm=n
172017\sim 20 3m10183 \leq m \leq 10^{18}