n, m = read_line.split.map(&.to_i) k = {n, m}.min is_prime = Array.new(k + 1, true) mu = Array.new(k + 1, 1) mu[0] = 0 ans = n.to_i64 * m 2.upto(k) do |i| if is_prime[i] (i * 2).step(to: k, by: i) do |j| is_prime[j] = false mu[j] *= -1 end mu[i] *= -1 mu[i * i] = 0 if i.to_i64 * i <= k end if mu[i] == 0 (i * 2).step(to: k, by: i) do |j| mu[j] = 0 end end ans += (n.to_i64 // i) * (m.to_i64 // i) * mu[i] end puts ans