N, M, P = gets.split.map(&:to_i) A = gets.split.map(&:to_i) ans = Float::INFINITY max_e = 1 A.each do |a| div_cnt = 0 e = a while e % P == 0 e /= P div_cnt += 1 end next if e == 1 cnt = 0 x = 1 while x * a <= M x *= e cnt += (1 + div_cnt) end if ans > cnt + 1 ans = cnt + 1 end end if ans == Float::INFINITY puts -1 else puts ans end