Problem:
Score : 300 points

Problem Statement

Takahashi is organizing a party.

At the party, each guest will receive one or more snack pieces.

Takahashi predicts that the number of guests at this party will be A or B.

Find the minimum number of pieces that can be evenly distributed to the guests in both of the cases predicted.

We assume that a piece cannot be divided and distributed to multiple guests.

Constraints

1 \leq A, B \leq 10^5

A \neq B

All values in input are integers.

Input

Input is given from Standard Input in the following format:

A B

Output

Print the minimum number of pieces that can be evenly distributed to the guests in both of the cases with A guests and B guests.

Sample Input 1

2 3

Sample Output 1

6

When we have six snack pieces, each guest can take three pieces if we have two guests, and each guest can take two if we have three guests.

Sample Input 2

123 456

Sample Output 2

18696

Sample Input 3

100000 99999

Sample Output 3

9999900000

Solution in Ruby (2.3.3) (judge verdict: Runtime Error)

a, b = gets.split().map(&:to_i)

def inshi(n)
    inshi = []
    max_so = Math.sqrt(n).to_i
    so = []
    for i in 1..n
    	if i == 0 || i == 1
	elsif i == 2
	    so.push(2)
	else
	    flg = 1
    	    for j in 2..Math.sqrt(i).to_i
	        if i % j == 0
	           flg = 0
		   break
	        end
	    end
	    if flg == 1
                so.push(i)
	    end
	end
    end

    i = 0
    while true
    	if n % so[i] == 0
	   inshi.push(so[i])
	   n = n/so[i]
	else
	   i += 1
	end
	if n < so[i]
	   break
	end
    end

    return inshi
end


inshi_a = inshi(a)
inshi_b = inshi(b)

lists = {}
(inshi_a+inshi_b).chunk(&:itself).each {|k,v|
if lists.has_key?(k)
   if lists[k].length < v.length
      lists[k] =v
   end
else
   lists[k] = v
end
}

sum = 1
for i in lists.values
     sum *= i.inject(:*)
end
puts sum