#include<cstdio>
#include<cstdlib>
bool check(bool);
bool p[1000][1000];
int C, N, l, f;

int main(void){
	char buf[1000];
	int i, j, ans=0;
	scanf("%d %d", &C, &N);
	--C;
	for(i=0; i<N; ++i){
		scanf("%s", buf);
		for(j=0; j<N; ++j){ p[i][j]=(buf[j]=='1')?true:false; }
	}
	if(check(true)){ ++ans; }
	for(i=0; i<C; ++i){
		if(check(false)){ ans++; }
	}
	printf("%d\n", ans);
	return(0);
}

bool check(bool isFirst){
	bool isSym=true;
	int D, r, c, i, j;
	if(isFirst){
		for(i=0; (i<N/2)&&(isSym); ++i){
			for(j=0; (j<N/2)&&(isSym); ++j){
				if(!((p[i][j]==p[N-i-1][j])&&(p[i][j]==p[i][N-j-1])&&(p[i][j]==p[N-i-1][N-j-1]))){ isSym=false; }
			}
		}
		
	}
	else{
		scanf("%d", &D);
		for(i=0; i<D; ++i){
			scanf("%d %d", &r, &c);
			--r; --c;
			p[r][c]=!p[r][c];
		}
		for(i=0; (i<N/2)&&(isSym); ++i){
			for(j=0; (j<N/2)&&(isSym); ++j){
				if(!((p[i][j]==p[N-i-1][j])&&(p[i][j]==p[i][N-j-1])&&(p[i][j]==p[N-i-1][N-j-1]))){ isSym=false; }
			}
		}

	}
	return(isSym);
}
