import java.util.Scanner;
/*
* 如果连续最小数目的数据都是可以买的到的情况下以后的数据都是可以买的到的(这个作为停止的条件)
* 考虑使用动态规划进行计算
* 数据结构
* 使用数组存放某数据是否可以进行放置
*
*
* 使用动态规划的思想
* 先求较小的数据
* 然后将较大的数据变换成较小的数据进行运算获得结果
*
*
*/
public class Main {
public static void f()
{
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
int max = a>b?a:b;
int min = a>b?b:a;
boolean isOk[] = new boolean[10000000];
int num = 0;
//初始化一些数据
for(int i = min;i<max;i++)
{
if(i%min==0)
{
isOk[i] = true;
}
if(isOk[i])
{
num++;
if(num>=min)
{
System.out.println(i-min);
return;
}
}
else
{
num=0;
}
}
for(int i = max;;i++)
{
if(isOk[i-max]||isOk[i-min]||i%max==0||i%min==0)
{
isOk[i] = true;
}
if(isOk[i])
{
num++;
if(num>=min)
{
System.out.println(i-min);
return;
}
}
else
{
num=0;
}
}
}
public static void main(String[] args) {
f();
}
}
华love邵