require 'bigdecimal'
t=gets.to_i
t.times{
p1,k1=gets.split(" ")
p2=BigDecimal(p1,40)
k2=BigDecimal(k1,40)
t1=BigDecimal("1.0",40)
t0=BigDecimal("0.0",40)
p1=p1.to_f
k1=k1.to_i
ans=1
if k1==1 then
puts 1.0
elsif k1==2 then
puts p1.to_f+2.0*(1.0-p1.to_f)
elsif p2==t0 then
puts k1.to_f
else
#qk=(1-p1)**(k1-1)
#ans=(1.0-qk)/p1+qk
qk=((t1-p2)**(k2-t1))
puts ((1.0-qk)/p2+qk).round(40).to_s("F")
end
}
cmVxdWlyZSAnYmlnZGVjaW1hbCcKdD1nZXRzLnRvX2kKdC50aW1lc3sKCXAxLGsxPWdldHMuc3BsaXQoIiAiKQoJcDI9QmlnRGVjaW1hbChwMSw0MCkKCWsyPUJpZ0RlY2ltYWwoazEsNDApCgl0MT1CaWdEZWNpbWFsKCIxLjAiLDQwKQoJdDA9QmlnRGVjaW1hbCgiMC4wIiw0MCkKCXAxPXAxLnRvX2YKCWsxPWsxLnRvX2kKCWFucz0xCglpZiBrMT09MSB0aGVuCgkJcHV0cyAxLjAKCWVsc2lmIGsxPT0yIHRoZW4KCQlwdXRzIHAxLnRvX2YrMi4wKigxLjAtcDEudG9fZikKCWVsc2lmIHAyPT10MCB0aGVuCgkJcHV0cyBrMS50b19mCgllbHNlCgkJI3FrPSgxLXAxKSoqKGsxLTEpCgkJI2Fucz0oMS4wLXFrKS9wMStxawoJCXFrPSgodDEtcDIpKiooazItdDEpKQoJCXB1dHMgKCgxLjAtcWspL3AyK3FrKS5yb3VuZCg0MCkudG9fcygiRiIpCgllbmQKfQ==