#include<iostream>
struct D{int a,b,c;};
int main(){
  int a,b,c,N,i,w,x,y,z,m[303];
  D t[1001];
  for(;std::cin>>a>>b>>c>>N,a;){
    for(i=301;i-->0;)m[i]=2;
    for(i=0;N-->0;){
      std::cin>>w>>x>>y>>z;
      D d={w,x,y};
      if(z)m[w]=m[x]=m[y]=1;
      else t[i++]=d;
    }
    for(;i-->0;){
      if((m[t[i].a]&1)+(m[t[i].b]&1)+(m[t[i].c]&1)==2){
	m[t[i].a]&=1;
	m[t[i].b]&=1;
	m[t[i].c]&=1;
      }
    }
    for(i++;i++<a+b+c;)printf("%d\n",m[i]);
  }
}