坤坤玩弹跳
题号:NC21506
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

对于坤坤来说,看着一个在矩形中弹珠在弹跳是非常有趣的。
如下图所示,矩形被划分为N×M网格

弹跳规则很简单:
1。弹珠总是从左上角开始,然后向右下角移动。
2。如果弹珠碰到矩形的任何边,它就会反弹。
三。如果圆在启动后到达矩形的任何角落,它将停止在那里。
因为有些网格会被重复到达,所以坤坤想知道这个弹珠在反弹过程中只经过一次网格的数量是多少。你能帮助他吗?

输入描述:

一行包含两个整数N和M,表示矩形的行数和列数

输出描述:

输出包含一个整数的一行,弹珠直到它停止只经过一次网格的数量(开始网格和结束网格也计数)。
示例1

输入

复制
2 2

输出

复制
2
示例2

输入

复制
9 15

输出

复制
39
示例3

输入

复制
4 6

输出

复制
8

备注: