#include <iostream>
using namespace std;

int main() {
 int i,j,k,s,g,b,r,n[2],d[2][30],t[2][65537],f[2][65537],a[65537];
 for (i=0;i<65536;i++) { a[i]=0; for (j=1;j<65536;j*=2) a[i]+=(j & i)>0;}
 while(cin >> n[0] >> n[1] && n[0]+n[1]!=0) {
	 for (j=0;j<2;j++) {
	  for (i=0;i<n[j];i++) {
		 for (k=0,s=0;k<16;k++) { cin >> g; if (j==1) g=1-g; s+=g << k;}
		 d[j][i]=s;
	    } 
     }
    for (j=0;j<2;j++) for (i=0;i<65536;i++) {f[j][i]=t[j][i]=-1;} f[0][0]=0; t[0][0]=0; 
    for (i=0,r=0;i<n[0];i++) {
		for (j=0;j<65536;j++) {
		s= j | d[0][i];	  
		if (f[r][j]==i && t[r][j]>t[1-r][s] && t[r][j]>t[r][s]) { t[1-r][s]=t[r][j]; f[1-r][s]=i;}} 
		r=1-r;
		for (j=0;j<65536;j++) {
			if (f[r][j]!=i) continue;
			for (k=0;k<n[1];k++) {
				s=j & d[1][k]; b=a[j]-a[s];
				if (t[r][s]<b+t[r][j] && t[1-r][s]<b+t[r][j]) { f[1-r][s]=i+1; t[1-r][s]=b+t[r][j];}
			}
		}
		r=1-r;
	}
	s=0;
	for (j=0;j<2;j++) for (i=0;i<65535;i++) if (t[j][i]>s) s=t[j][i];
	cout << s << endl;
  }
 return 0;
 } 