EPS = 1e-9
n, m, l = gets.split.map(&:to_i)
p, t, v = n.times.map{ gets.split.map(&:to_f) }.transpose

prob_set = n.times.map{ [0] * (m + 1) }

factorial = (1..m).each_with_object([1]) { |i, arr| arr << arr[-1] * i }
n.times do |i|
  (m + 1).times do |j|
    prob_set[i][j] = (p[i] / 100.0) ** j * (1 - p[i] / 100.0) ** (m - j) * factorial[m] / factorial[m - j] / factorial[j]
  end
end
prob_sum = prob_set.map{ |ps| (0..m).map{ |i| ps[i..-1].reduce(:+) } }

n.times do |i|
  ret = 0
  (m + 1).times do |j|
    prob = prob_set[i][j]
    time = l / v[i] + t[i] * j
    n.times do |k|
      next if i == k
      base = l / v[k]
      upper = (time - base) / t[k] + EPS
      if upper >= m || time - base == 0 && t[k] == 0 || v[i] == 0 && v[k] == 0
        prob = 0
        break
      end
      upper = upper < 0 ? 0 : upper.ceil
      prob *= prob_sum[k][upper]
    end
    ret += prob
  end
  puts '%.8f' % ret
end