/*

????????? ???????????? ???????????????
????´\????????????????????£????£???????????£??????????????????????????§°????????¶????????§??¨????????????
????????¨??§??\??????????????????????´\??????????????§???????????????????????°??¨??????????£?????????????
????????????????¨????????????????????????????????????±???????????????????????????????§°????????£?????????
??????????????§????¨????????????????????????????????????? N??N ?????????????????£?????¢???????????????
??¨????????¨????????????????????????????????????????????????????????????????????????0 ????????? 1 ???
????????¨??????

?????????????????£?????????????????¨??´??°?????¨????????£?????????????§£????????????????????????????????§
??¢?????´??°???????????¨????????£????????°??????????????§?????????????????????????????????????????\??????
??????????????\??????????????§????????????????§£???????????????????????????????????????????????????

	??? ???????????????????????????????????????????????????????????±??????N??N ?????????????????????
	?????¨??????????????????????????????????????????
	??? ???????????\?????????????????????????????±??????????????????????????????????????¨????????????
	?????????????????????????????????????????????0 ?????? 1???????????????1 ?????? 0????????¨??????
	?????????????????????????????????????????¨????????????????????????

??????
C ??????????????????????????????????????????????????????????????????????????±??¨?¶???? C-1 ?????????
???????????±?????\???????????????????§°????????????????§°??¨?????£????????????????????????????????°?????±
?????????????????°????????????????????????

??\???
??\????????\????????¢?????§??????????????????

C N
p11p12???p1N
p21p22???p2N
:
pN1pN2???pNN
diff1
diff2
:
diffC-1

????????????
	???????????????????????° C(1???C???10000)??¨
	??????????????¨?¨??????????????????° N(2???N???1000 ?????? N ?????¶??°)
?????????????????????
???????????????N+1?????????
	?????????????????????????????????????????????????????¨???N?????N????????°???pij(pij??? 0 ????????? 1)
?????????????????????
N+2 ????????\?????????
	???????????\?????????????????????????????±?????¨????????? diffi????¬??????¢?????§??????????????????

D
r1 c1
r2 c2
:
rD cD

?????????????????????????????????????????°D(0???D???100)??????????????????????¶????D???????????????
???????????????????????¨?????????????????????????????¨???ri??¨ci(1???ri,ci???N)?????????????????????
diffi???????????????????????????????????\????????????????????????

????????¶???
??\?????????????????????????????????????§?????¶?????????????????????????

??????
??????????§°????????????????§°??¨?????£????????????????????????????????°???????????????????????????

*/

#include <stdio.h>

#define NUM 1000

	int C, N;
	char A[ NUM ][ NUM ];
	char t[ NUM ][ NUM ];
	char line[ NUM + 1 ];
	int total;

/*
 * ??????????????§?¨????????????????????????????????¢??????????
 */
int check(
	int x,				// X??§?¨?
	int y)				// Y??§?¨?
{
	int ret;

	if ( ( A[ x ][ y ] == A[ N - 1 - x ][ y ] ) &&		// ???????????¢????????????
		 ( A[ x ][ y ] == A[ x ][ N - 1 - y ] ) ) {		// ???????????¢????????????
		// ???????????¢??????????????¨???????????¢??????????????????????????±?????????
		ret = 1;		// ?????´????????????
	}
	else {
		ret = 0;		// ?????´???????????????
	}

//	printf( "(%d,%d) %c %c %c : %d\n", x, y, A[ x ][ y ], A[ N - 1 - x ][ y ], A[ x ][ N - 1 - y ], ret );

	return ret;
}
 
/*
 * ??????????????§?¨??????´?????§?????´??°??????
 */
void update(
	int x,				// X??§?¨?
	int y)				// Y??§?¨?
{
	total -= t[ x ][ y ];			// ?????§??????????????¶?????????????????? 
	t[ x ][ y ] = check( x, y );	// ?????§???????????´???
	total += t[ x ][ y ];			// ?????§??????????????¶????????´??°??????
}
 
/*
 * ??????????????§?¨???????????????´??°??????(???????????????)
 */
void change(
	int x,				// X??§?¨?
	int y)				// Y??§?¨?
{
	if ( A[ x ][ y ] == '0' ) {
		A[ x ][ y ] = '1';
	}
	else {
		A[ x ][ y ] = '0';
	}
	update( x, y );			// ??´??°????????????????????§??????
	update( N-1-x, y );		// ??¢??£????????????????§°
	update( x, N-1-y );		//         ??????????±?????????§??????
}
 
/*
 * ??´?????§?????¨???????????????????¢??????????
 */
int solve( void )
{
	int ret = 0;

	if ( total == N * N ) {
		// ?????§?????????????????????????????????????????°????????????????????????
		ret = 1;
	}

	return ret;
}

void debug( )
{
	int i, j;

	for ( i = 0 ; i < N ; i++ ) {
		for ( j = 0 ; j < N ; j++ ) {
			printf( "%c", A[ i ][ j ] );
		}
		printf( "  " );
		for ( j = 0 ; j < N ; j++ ) {
			printf( "%d", t[ i ][ j ] );
		}
		printf( "\n" );
	}
	printf( "Total:%d\n", total );
}
 
/*
 * ???????????¢??°
 */
int main( void )
{
	int i, j, k;
	int x, y;
	int ans;

	total = 0;

	// ???????????????????????° C(1???C???10000)
	scanf( "%d", &C );

	// ??????????????¨?¨??????????????????° N(2???N???1000 ?????? N ?????¶??°)
	scanf( "%d", &N );

	for( i = 0 ; i < N ; i++ ) {
		scanf( "%s", line );
		for( j = 0 ; j < N ; j++ ) {
			A[ i ][ j ] = line[ j ];
		}
	}
 
	for ( i = 0 ; i < N ; i++ ) {
		for ( j = 0 ; j < N ; j++ ) {
			t[ i ][ j ] = check( i, j );
			total += t[ i ][ j ];
		}
	}
 	ans = solve( );			// ??´?????§????????§??????

//	debug( );

	// ???????????????????????????
	for ( i = 0 ; i < C - 1 ; i++ ) {
		scanf( "%d", &k );

		for( j = 0 ; j < k ; j++ ) {
			scanf( "%d %d", &x, &y );
			x--;	// ?????????????´????????????????????????? --
			y--;	// 
			change( x, y );
		}

		ans += solve( );	// ??´?????§????????§??????
	}

	printf( "%d\n", ans );

	return 0;
}

Measured memory_bytes: 2556