#include<iostream>
#include<cmath>
#include<string.h>
#include<stdio.h>
using namespace std;



const unsigned long long MOD1=13331,MOD2=1000007;
int w=-1,h,p;
int ans=0;
bool map[1001][1001];
bool model[101][101];
bool tmp_model[101][101];
bool ft[1001][1001];

unsigned long long hash1[1001][1001];
unsigned long long hash2[1001][1001];
unsigned long long g1[151],g2[151];
unsigned long long aim;
unsigned long long hh[101];

void solve()
{
     int i,j,k;
     unsigned long long tmp;
     
     for(i=1;i<=h;i++)
     {
          tmp=0;
          for(j=1;j<=w;j++)
          {
               tmp=tmp*MOD1+map[i][j];
               if(j>p)
               {
                    tmp-=g1[p]*map[i][j-p]; 
               }
               if(j>=p)
               {
                    hash1[i][j]=tmp;
               }
          }
     }
     
     for(i=p;i<=w;i++)
     {
          tmp=0;
          for(j=1;j<=h;j++)
          {
                tmp=tmp*MOD2+hash1[j][i];
                if(j>p)
                {
                    tmp-=g2[p]*hash1[j-p][i];
                }
                if(j>=p)
                {
                    hash2[j][i]=tmp;
                }
          }
     }
     
     
     for(i=1;i<=p;i++)
     {
         tmp=0;
         for(j=1;j<=p;j++)
         {
             tmp=tmp*MOD1+model[i][j];
         }
         hh[i]=tmp;
     }
     aim=0;
     for(i=1;i<=p;i++)
     {
          aim=aim*MOD2+hh[i];
     }
     
     for(i=p;i<=h;i++)
     {
         for(j=p;j<=w;j++)
         {
             if(hash2[i][j]==aim && ft[i][j]==0)
             {
                 ans++;
                 ft[i][j]=1;
             }
         }
     }
     
     
     return ;
}




void mi()
{
    int i,j;
    for(i=1;i<=p;i++)
    {
        for(j=1;j<=p/2;j++)
        {
             swap(model[i][j],model[i][p-j+1]);
             //cout<<j<<' '<<p-j<<"%%%"<<endl;
        }
    }
    return ;
}
void ro()
{
    int i,j;
    for(i=1;i<=p;i++)
    {
        for(j=1;j<=p;j++)
        {
            tmp_model[j][p-i+1]=model[i][j];
        }
    }
    for(i=1;i<=p;i++)
    {
        for(j=1;j<=p;j++)
        {
            model[i][j]=tmp_model[i][j];
        }
    }
    return ;
}


int main()
{
    int i,j,k,times;
    int temp;
    int temp1;
    char d;
    
    
    g1[0]=g2[0]=1;
    for(i=1;i<=150;i++)
    {
        g1[i]=g1[i-1]*MOD1;
        g2[i]=g2[i-1]*MOD2;
    }
    
    
    
    while(w!=0)
    {
        cin>>w;
        if(w!=0)
        {
            ans=0;
            cin>>h>>p;
            
            for(i=1;i<=h;i++)
            {
                for(j=1;j<=(w+5)/6;j++)
                {
                     cin>>d;
                     if(d>='A' && d<='Z')
                     {
                          temp=d-'A';
                     }
                     else if(d>='a' && d<='z')
                     {
                          temp=d-'a'+26;
                     }
                     else if(d>='0' && d<='9')
                     {
                          temp=d-'0'+52;
                     }
                     else if(d=='+')
                     {
                         temp=62;
                     }
                     else
                     {
                          temp=63;
                     }
                     
                     for(k=6;k>=1;k--)
                     {
                           temp1=temp%2;
                           temp/=2;
                           if((j-1)*6+k<=w)
                           {
                                map[i][(j-1)*6+k]=temp1;
                           }
                     }
                     
                }
            }
            /////////////////////////////
            for(i=1;i<=p;i++)
            {
                for(j=1;j<=(p+5)/6;j++)
                {
                     cin>>d;
                     if(d>='A' && d<='Z')
                     {
                          temp=d-'A';
                     }
                     else if(d>='a' && d<='z')
                     {
                          temp=d-'a'+26;
                     }
                     else if(d>='0' && d<='9')
                     {
                          temp=d-'0'+52;
                     }
                     else if(d=='+')
                     {
                         temp=62;
                     }
                     else
                     {
                          temp=63;
                     }
                     
                     for(k=6;k>=1;k--)
                     {
                           temp1=temp%2;
                           temp/=2;
                           if((j-1)*6+k<=w)
                           {
                                model[i][(j-1)*6+k]=temp1;
                           }
                     }
                     
                }
            }
            ///////////////////////
            
            
            //for(i=1;i<=p;i++)
//            {
//                for(j=1;j<=p;j++)
//                {
//                    cout<<model[i][j];
//                }
//                cout<<endl;
//            }
            
            
            memset(ft,0,sizeof(ft));
            
            for(times=1;times<=4;times++)
            {
                  solve();
                  
                  if(times!=4)
                  {
                       ro();
                  }
                  
                  
            }
            mi();
            
            for(times=1;times<=4;times++)
            {
                  solve();
                  
                  if(times!=4)
                  {
                       ro();
                  }
                  
                  
            }
            
            cout<<ans<<endl;
            /*
            for(i=1;i<=h;i++)
            {
                for(j=1;j<=w;j++)
                {
                    cout<<ft[i][j]<<' ';
                }
                cout<<endl;
            }
            
            
            cout<<endl;
            for(i=1;i<=h;i++)
            {
                for(j=1;j<=w;j++)
                {
                    cout<<map[i][j]<<' ';
                }
                cout<<endl;
            }
            cout<<endl;
            for(i=1;i<=p;i++)
            {
                for(j=1;j<=p;j++)
                {
                    cout<<model[i][j]<<' ';
                }
                cout<<endl;
            }
            cout<<endl;
            */
            
        }
    }
    
    
    return 0;
}

Measured memory_bytes: 18752