/*
TASK: EXPRES
LANG: C++
*/

#include<iostream.h>
#include<stdlib.h>

char a[5][1024],b[20];
int c[128],z[128],cur[128],n,k,max;
char ch[10][20] = {"111101101101111",
                   "001001001001001",
                   "111001111100111",
                   "111001111001111",
                   "101101111001001",
                   "111100111001111",
                   "111100111101111",
                   "111001001001001",
                   "111101111101111",
                   "111101111001111"};

int cmpe[128][128] = {{0,1,0,1,0,0,0,1,0,1,2,3,2,2,2,3,2,3,2},
                      {0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2},
                      {5,6,0,6,5,3,4,5,0,7,2,7,6,5,7,8,2,8,7},
                      {1,1,1,0,0,1,1,1,1,1,3,3,3,3,2,2,3,3,3},
                      {1,2,1,1,0,1,1,2,1,2,3,4,3,3,2,3,3,4,3},
                      {3,4,1,4,3,0,3,4,0,4,2,6,5,0,5,6,3,6,5},
                      {1,2,0,2,1,1,0,1,0,2,2,3,2,3,3,4,2,4,3},
                      {2,2,1,1,2,1,1,0,1,2,3,2,3,3,4,3,3,4,4},
                      {7,8,2,8,7,4,6,7,0,7,2,9,8,6,9,10,4,10,9},
                      {1,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1,0,1,1},
                      {7,8,2,8,7,4,6,7,0,7,0,7,6,4,7,8,2,8,7},
                      {2,2,1,1,2,1,1,0,1,2,1,0,1,1,2,1,1,2,2},
                      {1,2,0,2,1,1,0,1,0,2,0,1,0,1,1,2,0,2,1},
                      {3,4,1,4,3,0,3,4,0,4,0,4,3,0,3,4,1,4,3},
                      {1,2,1,1,0,1,1,2,1,2,1,2,1,1,0,1,1,2,1},
                      {1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1},
                      {5,6,0,6,5,3,4,5,0,5,0,5,4,3,5,6,0,6,5},
                      {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                      {0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0}
                     };
                    // 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
int cmpn[128][128] = {{0,1,5,1,1,3,1,2,7,1,7,2,1,3,1,1,5,1,0},
                      {1,0,6,1,2,4,2,2,8,1,8,2,2,4,2,1,6,0,1},
                      {0,0,0,1,1,1,0,1,2,0,2,1,0,1,1,1,0,0,0},
                      {1,0,6,0,1,4,2,1,8,0,8,1,2,4,1,0,6,0,1},
                      {0,0,5,0,0,3,1,2,7,0,7,2,1,3,0,0,5,0,0},
                      {0,0,3,1,1,0,1,1,4,0,4,1,1,0,1,1,3,0,0},
                      {0,0,4,1,1,3,0,1,6,0,6,1,0,3,1,1,4,0,0},
                      {1,0,5,1,2,4,1,0,7,0,7,0,1,4,2,1,5,0,1},
                      {0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,1,1,0,0},
                      {1,0,7,1,2,4,2,2,7,0,7,2,2,4,2,1,5,0,1},
                      {2,2,2,3,3,2,2,3,2,0,0,1,0,0,1,1,0,0,0},
                      {3,2,7,3,4,6,3,2,9,1,7,0,1,4,2,1,5,0,1},
                      {2,2,4,3,3,5,2,3,8,1,6,1,0,3,1,1,4,0,0},
                      {2,2,5,3,3,0,3,3,6,1,4,1,1,0,1,1,3,0,0},
                      {2,2,7,2,2,5,3,4,9,1,7,2,1,3,0,0,5,0,0},
                      {3,2,8,2,3,6,4,3,10,1,8,1,2,4,1,0,3,0,1},
                      {2,2,2,3,3,3,2,3,4,0,2,1,0,1,1,1,0,0,0} ,
                      {3,2,8,3,4,6,4,4,10,1,8,2,2,4,2,1,6,0,1},
                      {2,3,7,3,3,5,3,4,9,1,7,2,1,3,1,1,5,1,0}};

int New(int poz,int nul,int ed)
{
 if(nul==ed){
 int f=0;
 for(int j=0;j<n;j++) f+=c[j];
 if(max<f)
 {
 max=f;
 for(int h=0;h<n;h++)  fa[h]=cur[h];
 }
 for(int i=c[poz]+9+1;i<=10+9;i++)
  if((cmpn[c[poz]][i]<=nul)&&(cmpe[c[poz]][i]<=ed))
  {
   cur[poz]=i-9;
   New(poz+1,nul-cmpn[c[poz]][i],ed-cmpe[c[poz]][i]);
   cur[poz]=c[poz];
  }
}

int main()
{
int i,j;
 cin>>n>>k;
 for(j=0;j<5;j++)
  cin>>a[j];

  
 for(i=0;i<n;i++)
 {
  b[0]=a[0][i*6];
  b[1]=a[0][i*6+1];
  b[2]=a[0][i*6+2];
  b[3]=a[1][i*6];
  b[4]=a[1][i*6+1];
  b[5]=a[1][i*6+2];
  b[6]=a[2][i*6];
  b[7]=a[2][i*6+1];
  b[8]=a[2][i*6+2];
  b[9]=a[3][i*6];
  b[10]=a[3][i*6+1];
  b[11]=a[3][i*6+2];
  b[12]=a[4][i*6]   ;
  b[13]=a[4][i*6+1]  ;
  b[14]=a[4][i*6+2];
  for(j=0;j<10;j++)
  {
   int t=0;
   for(int r=0;r<15;r++)
    if(b[r]!=ch[j][r])t++;
   if(t==0) c[i]=j;
  }
 }

 for(i=1;i<n;i++)
  if(a[2][3*i+1] == '0') c[i]=c[i]*(-1);

 New(0,k/2,k/2);

 cout<<max;
 for(i=0;i<n;i++)
 if(maxa[i]==1)||(maxa[i]==4)
 return 0;
}


