N, LB, RB = gets.split.map(&:to_i) P = N.times.map { |i| [i] + gets.split.map(&:to_i) } P.sort_by! { |_, _, yu, _, _| -yu } ans = Array.new(N, false) covered = Hash.new(false) P.each do |i, xl, yu, xr, yd| hit = false [xl, LB].max.upto([xr, RB].min) do |x| hit |= !covered[x] covered[x] = true end ans[i] = hit end puts ans.map { |f| f ? 1 : 0 }