program snack
  implicit none
  integer(8) :: a, b
  read(*,*) a, b
  write(*,'(i0)') lcm(a,b)
contains
  integer(8) function lcm(a,b)
    integer(8), intent(in) :: a, b
    lcm = a/gcd(a,b)*b
  end
  integer(8) function gcd(a,b)
    integer(8), intent(in) :: a, b
    integer(8) :: x, y
    x = max(a,b)
    y = min(a,b)
    do while (y > 0_8)
      gcd = y
      y = mod(x,y)
      x = gcd
    end do
  end
end program snack