#include <iostream>
#include <cstdio>
#include <string>
#include <vector>
#define pb push_back

using namespace std;
int hako[6][6][6];
int tmp[6][6][6];
int m1,m2;
vector<int> a,b;

int cal(int x,int y,int z){
  int i,j,k;
  int num=0;
  for(k=1;k>=-1;k--){
    for(i=1;i>=-1;i--){
      for(j=1;j>=-1;j--){
        if(x+i<0||x+i>4||y+j<0||y+j>4||(i==0&&j==0&&k==0))continue;
        if(hako[x+i][y+j][z+k]==1) num++;
      }
    }
  }
  return num;
}

void sim(int n){
  int i,j,k,l,r;
  int num=0;
  for(l=0;l<n;l++){
    for(k=0;k<5;k++){
      for(i=0;i<5;i++){
        for(j=0;j<5;j++){
          num=cal(i,j,k);
          if(hako[i][j][k]==0){
            tmp[i][j][k]=0;
            for(r=0;r<a.size();r++){
              if(num==a[r]) tmp[i][j][k]=1;
            }
          }
          else{
            tmp[i][j][k]=0;
            for(r=0;r<b.size();r++){
              if(num==b[r]) tmp[i][j][k]=1;
            }
          }
        }
      }
    }
    for(k=0;k<5;k++) for(i=0;i<5;i++) for(j=0;j<5;j++) hako[i][j][k]=tmp[i][j][k];
  }
}

int main(){
  int i,j,k,n,t;
  string s;
  int c=1;
  while(cin>>n,n){
    for(i=0;i<5;i++){
      for(j=0;j<5;j++){
        for(k=0;k<5;k++){
          hako[i][j][k]=0;
        }
      }
    }
    for(k=0;k<5;k++){
      for(i=0;i<5;i++){
        cin>>s;
        for(j=0;j<s.size();j++){
          if(s[j]=='1') hako[i][j][k]=1;
        }
      }
    }
    a.clear();
    b.clear();

    cin>>m1;                   
    for(i=0;i<m1;i++){
      cin>>t;
      a.pb(t);
    }
    cin>>m2;
    for(i=0;i<m2;i++){
      cin>>t;
      b.pb(t);
    }
    
    sim(n);
    /* cout<<"Case "<<c<<":"<<endl; */
    if(c!=1) printf("\n");
    printf("Case %d:\n",c);
    for(k=0;k<5;k++){
      for(i=0;i<5;i++){
        for(j=0;j<5;j++){
          printf("%d",hako[i][j][k]);
          /* cout<<hako[i][j][k]; */
        }
        printf("\n");
      }
      if(k!=4) printf("\n");
    }    
    c++;
  }
  return 0;
}