n, m = gets.split.map &:to_i ans = if n > 10000 c = 0 _m = m while n >= _m c += n / _m _m *= m end ln = Math.log10(n) n * (ln - Math.log10(Math::E)) + (ln + Math.log10(Math::PI) + Math.log10(2))/2 - c * Math.log10(m) else f = [*1..n].inject :* while f%m == 0 f /= m end Math.log10 f end a = ans.floor b = ans % 1 puts "#{10.0**b}e#{a}"