#XMOJ12267. 邪恶算盘

邪恶算盘

说明

时间限制:1 Sec 内存限制:256 MB 输入文件:abacus.in 输出文件:abacus.out

小明不擅长算盘,尤其无法接受“珠子代表的数值由位置决定”这一点。

于是小明想出一种新方式:仅依靠二维格子里哪些位置有珠子,来表示一个整数。下面进行抽象说明。

有一个 $R$ 行 $C$ 列的网格,每个格子要么有珠子,要么没有珠子。

网格中总共有 $RC-1$ 颗珠子,也就是说,恰好只有一个格子是空的。

给每一种盘面分配一个大于等于 $0$ 的整数。

设分配到的整数的最大值为 $K$,则必须保证:$0,1,\dots,K$ 中每一个整数,都至少存在一个盘面与之对应。

注意:盘面不能翻转,但可以旋转。旋转之后能够重合的盘面,必须分配同一个整数。

给定 $R,C$,请求出 $K$ 的最大可能值。

输入格式

第一行两个整数 $R,C$。

输出格式

输出一行一个整数,表示 $K$ 的最大可能值。

样例

样例 1

2 3

2

样例说明:

总共有 66 种盘面。用 "*" 代表有珠子,"." 代表空格子。其中两个盘面旋转 180° 后完全一样,必须映射到同一个整数。

盘面与整数对应关系示例:


0    0    1    1    2    2
***  .**  *.*  ***  **.  ***
**.  ***  ***  *.*  ***  .**


样例 2

1 1

0

样例说明:

只有唯一一种盘面,只能对应整数 00。

样例 3

123456789 987654321

60966315556317634

数据范围

对于 20% 的数据,$R,C \le 10$。

对于 100% 的数据,$1 \le R,C \le 10^9$。