### main

loop do
  n, w, d = gets.split.map(&:to_i)
  break if (n | w | d) == 0

  cards = [[w, d]]

  n.times do
    pi, si = gets.split.map(&:to_i)
    pi -= 1

    wi, di = cards[pi]
    cards.delete_at(pi)

    si %= wi + di

    if si < wi
      w0 = si
      w1 = wi - w0
      if w0 < w1
        cards += [[w0, di], [w1, di]]
      else
        cards += [[w1, di], [w0, di]]
      end
    else
      d0 = di - (si - wi)
      d1 = di - d0
      if d0 < d1
        cards += [[wi, d0], [wi, d1]]
      else
        cards += [[wi, d1], [wi, d0]]
      end
    end
  end

  puts cards.map{|wi, di| wi * di}.sort.join(' ')
end