
while true
    an, bn, cn = gets.chomp.split.map{|x| x.to_i}
    exit if [an,bn,cn].uniq == [0]
    n = gets.to_i

    flag = [nil]
    (an + bn + cn).times { flag << 2 }
    arr = []
    n.times do 
        arr << gets.chomp.split.map{|x| x.to_i}
    end
    #p arr
    arr.sort!{ |x| x[3] }.reverse!
    #p arr

    n.times do
    n.times do |i|
        a, b, c, r = arr[i]
        if r==1 then
            flag[a] = flag[b] = flag[c] = 1
        else
            if [flag[a],flag[b],flag[c]].count(1)==2
                fill = 0
            else
                fill = 2
            end
            flag[a] = fill if flag[a]==2
            flag[b] = fill if flag[b]==2
            flag[c] = fill if flag[c]==2
        end
    end
    end

    #p flag
    flag[1..-1].each { |x| puts x }

end