### main

id = 0

loop do
  n = gets.to_i
  break if n == 0

  rects = []
  xhash = {}
  yhash = {}

  n.times do
    xi, yi, ri = gets.split.map(&:to_f)
    rect = [xi - ri, yi - ri, xi + ri, yi + ri]
    xhash[rect[0]] = xhash[rect[2]] = 1
    yhash[rect[1]] = yhash[rect[3]] = 1
    rects << rect
  end

  xs = xhash.keys.sort
  ys = yhash.keys.sort
  #p [xs, ys]

  xs.each_with_index{|f, i| xhash[f] = i}
  ys.each_with_index{|f, i| yhash[f] = i}
  #p [xhash, yhash]

  w = xs.length - 1
  h = ys.length - 1

  cells = h.times.map{w.times.map{false}}

  rects.each do |x0, y0, x1, y1|
    i0 = xhash[x0]
    i1 = xhash[x1]
    j0 = yhash[y0]
    j1 = yhash[y1]
    for j in (j0...j1)
      for i in (i0...i1)
        cells[j][i] = true
      end
    end
  end
  #p cells

  ar = 0.0
  for j in (0...h)
    for i in (0...w)
      if cells[j][i]
        ar += (xs[i + 1] - xs[i]) * (ys[j + 1] - ys[j])
      end
    end
  end

  id += 1
  puts [id, "%.2f" % ar.round(2)].join(' ')
end