import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        int m = console.nextInt();
        int n = console.nextInt();
        int result = getCM(m, n);
        System.out.println(result);
    }
    //编写一个方法,该方法的返回值是两个不大于100的正整数的最小公倍数
    public static int getCM(int m, int n){

        /*
        分析一下什么是最小公倍数:
                最小公倍数=(m*n)/最小公约数
        最小公约数:
            根据欧几里得算法的余数性质:如果 x 是 y 的倍数,则 x 和 y 的最大公约数等于 y 和 (x - ky) 的最大公约数(其中 k 是一个整数)。这意味着我们可以减去 y 的倍数而不改变它们的最大公约数。

        举例:算出10 8的最大公约数
            10和 8 的公约数等于 8和2的最大公约数
            8和2的最大公约数  等于 2 和0的最大公约数

            即10和 8 的公约数等于 2 和0的最大公约数,故最大公约数等于2


        */
        int result=(m*n)/gyMax(m,n);
        return result;

    }

    //定义一个方法用于得到最大公约数
    private static int gyMax(int m,int n){
        //当n等于0的话,那么最大公约数就m了,所以要设一个条件
        while(n!=0){
            //第一种方法,用第三个变量进行交换值
            int temp=n;
            n=m%n;
            m=temp;
        }

        return m;
    }
}