#include<bits/stdc++.h>
using namespace std;
int Pflg[1001][1001];
int main(void)
{
	int c,n;
	int d;
	int dr,dc;
	int i,j;
	int cnt1,cnt2;
	char P[1001];
	cin>>c>>n;
	for(i=1;i<=n;i++){
		cin>>P;
		for(j=0;j<n;j++){
			Pflg[i][j+1]=P[j]-48;
		}
	}
	cnt1=0; cnt2=0;
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++){
			if(Pflg[i][j]==1){
				if(n/2>=j&&Pflg[i][j]!=Pflg[i][j+((n/2-j)*2)+1]) cnt2++;
				else if(n/2<j&&Pflg[i][j]!=Pflg[i][j-((j-n/2-1)*2)-1]) cnt2++;
				
				if(n/2>=i&&Pflg[i][j]!=Pflg[i+((n/2-i)*2)+1][j]) cnt2++;
				else if(n/2<j&&Pflg[i][j]!=Pflg[i][j-((j-n/2-1)*2)-1]) cnt2++;
			}
		}
	}
	
	if(cnt2==0) cnt1++;
//	cout<<"cnt2="<<cnt2<<endl;
	for(i=0;i<c-1;i++){
		cin>>d;
		for(j=0;j<d;j++){
			cin>>dr>>dc;
			if(Pflg[dr][dc]==0) Pflg[dr][dc]=1;
			else Pflg[dr][dc]=0;
			
			if(n/2>=dc){
				if(Pflg[dr][dc]!=Pflg[dr][dc+((n/2-dc)*2)+1]) cnt2++;
				else cnt2--;
			}
			else if(n/2<dc){
				if(Pflg[dr][dc]!=Pflg[dr][dc-((dc-n/2-1)*2)-1]) cnt2++;
				else cnt2--;
			}
			
			if(n/2>=dc){
				if(Pflg[dr][dc]!=Pflg[dr+((n/2-dr)*2)+1][dc]) cnt2++;
				else cnt2--;
			}
			else if(n/2<dc){
				if(Pflg[dr][dc]!=Pflg[dr-((dr-n/2-1)*2)-1][dc]) cnt2++;
				else cnt2--;
			}
		}
		if(cnt2==0){
			cnt1++;
//			cout<<"i="<<i+2<<endl;
		}
	}
	cout<<cnt1<<endl;
	
	return 0;
}
