def calc(a, y, o)
  results = o.map do |soc, air, aoc|
    r = a
    if soc.to_i == 0
      i = 0
      y.times do
        i += (r * air).to_i
        r -= aoc.to_i
      end
      r += i
    else
      y.times do
        r += (r * air).to_i - aoc.to_i
      end
    end
    r
  end
  results.max
end
gets.to_i.times do
  a = gets.to_i
  y = gets.to_i
  o = []
  gets.to_i.times do
    o.push(gets.split.map(&:to_f))
  end
  puts calc(a, y, o)
end