
public func gcd( m: Int, n: Int, using gcdAlgorithm: (Int, Int) -> (Int) = gcdIterativeEuklid) -> Int {
    return gcdAlgorithm(m, n)
}

public func gcdIterativeEuklid(_ m: Int, _ n: Int) -> Int {
    var a: Int = 0
    var b: Int = max(m, n)
    var r: Int = min(m, n)
    
    while r != 0 {
        a = b
        b = r
        r = a % b
    }
    return b
}

let arr=readLine()!.characters.split{$0==" "}.map{Int(String($0))!}

print((arr[0] * arr[1]) / gcd(arr[0], n: arr[1], using: gcdIterativeEuklid) )