#include <bits/stdc++.h>
using namespace std;
int n;
int Case=0;
char box[7][7][7];
char tmp[7][7][7];
int live[27];
int death[27];
void copy(){
	for(int x=0;x<7;x++){
		for(int y=0;y<7;y++){
			for(int z=0;z<7;z++){
				tmp[x][y][z]=box[x][y][z];
			}
		}
	}
}
void reset(){
	for(int x=0;x<7;x++){
		for(int y=0;y<7;y++){
			for(int z=0;z<7;z++){
				box[x][y][z]='2';
			}
		}
	}
}
void scan(){
	if(Case>0)cout<<endl;
	cout<<"Case "<<++Case<<":\n";
	for(int z=1;z<=5;z++){
		for(int y=1;y<=5;y++){
			for(int x=1;x<=5;x++){
				cin>>box[x][y][z];
			}
		}
	}
	for(int i=0;i<27;i++)live[i]=death[i]=0;
	int m,k;
	for(cin>>m;m--;){
		cin>>k;
		live[k]=1;
	}
	for(cin>>m;m--;){
		cin>>k;
		death[k]=1;
	}
}

int cnt(int X,int Y,int Z){
	int res=0;
	for(int x=X-1;x<=X+1;x++){
		for(int y=Y-1;y<=Y+1;y++){
			for(int z=Z-1;z<=Z+1;z++){
				if(x==X && y==Y && z==Z)continue;
				if(tmp[x][y][z]=='1')res++;
			}
		}
	}
	return res;
}

void cal(){
	copy();
	for(int x=1;x<=5;x++){
		for(int y=1;y<=5;y++){
			for(int z=1;z<=5;z++){
				int c=cnt(x,y,z);
				if(tmp[x][y][z]=='0'){
					if(live[c])box[x][y][z]='1';
				}
				else{
					if(death[c]==0)box[x][y][z]='0';
				}
				
			}
		}
	}
}
void print(){
	for(int z=1;z<=5;z++){
		if(z>1)cout<<endl;
		for(int y=1;y<=5;y++){
			for(int x=1;x<=5;x++){
				cout<<box[x][y][z];
			}
			cout<<endl;
		}
	}
}

int main(){
	
	while(cin>>n,n){
		reset();
		scan();
		while(n--)cal();
		print();
	}
	
	return 0;
}
