#include <iostream>
#include <cctype>
#include <cstdio>
#include <string>
#include <algorithm>
#include <vector>
#include <complex>
#include <cstring>
#include <set>
using namespace std;
#define loop(i,a,b) for(int i=a; i<b; i++)
#define rep(i,a) loop(i,0,a)

int input[1111][3];
int res[1111];

int main(){
    int a,b,c;
    while(cin>>a>>b>>c && a){
        int n;
        cin>>n;
        rep(i,n){
            rep(j,3){
                cin >> input[i][j];
            }
            cin>>res[i];
        }

        bool ok[1111]={};
        bool bad[1111]={};
        while(1){
            bool fine = true;
            rep(i,n){
                int a=0,b=0;
                int x,y,z;
                tie(x,y,z)=tie(input[i][0],input[i][1],input[i][2]);
                for(int j : {x,y,z}){
                    if(ok[j])a++;
                    if(bad[j])b++;
                }
                if(res[i]){
                    if(a!=3){
                        ok[x]=ok[y]=ok[z]=true;
                        fine = false;
                    }
                }else{
                    if(a==2 && b!=1){
                        for(int j : {x,y,z}){
                            if(!ok[j])bad[j]=true;
                            fine = false;
                        }
                    }
                }
            }
            if(fine) break;
        }
        for(int i=1;i<=a+b+c;i++){
            if(ok[i] && !bad[i])cout<<1;
            else if(!ok[i] && bad[i])cout<<0;
            else cout<<2;
            cout<<endl;
        }
    }
}
#include<cstdio>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
    while(1){
        int A,B,C,N;
        cin>>A>>B>>C;
        if(A==0&&B==0&&C==0)break;
        cin>>N;
        int lis[1000][4];
        for(int i=0;i<N;i++)cin>>lis[i][0]>>lis[i][1]>>lis[i][2]>>lis[i][3];
        int che[301];
        for(int i=1;i<=300;i++)che[i]=2;

        for(int i=0;i<N;i++){
            if(lis[i][3]==1)che[lis[i][0]]=1,che[lis[i][1]]=1,che[lis[i][2]]=1;
        }
        for(int i=0;i<N;i++){
            if(che[lis[i][0]]==1&&che[lis[i][1]]==1&&lis[i][3]==0)che[lis[i][2]]=0;
            if(che[lis[i][0]]==1&&che[lis[i][2]]==1&&lis[i][3]==0)che[lis[i][1]]=0;
            if(che[lis[i][1]]==1&&che[lis[i][2]]==1&&lis[i][3]==0)che[lis[i][0]]=0;
        }
        for(int i=1;i<=A+B+C;i++)cout<<che[i]<<endl;
    }
    return 0;
}