#include <iostream>
#include <cstring>

#define NMAX 4000
#define NUMS 63

typedef unsigned long long unum;

const int nbits = sizeof(unum)*8;

unsigned int
count_bits(unsigned int x)
{
	x = x - ((x >> 1) & 0x55555555);
	x = (x & 0x33333333) + ((x >> 2) & 0x33333333);
	x = (x + (x >> 4)) & 0x0F0F0F0F;
	x = x + (x >> 8);
	x = x + (x >> 16);
	return x & 0x0000003F;
}

unum
scalar_product_mod2(unum *row, unum *col, int n)
{
	unum bit, sum;
	unsigned int left, right;
	sum = 0U;
	for(int i = 0; i < n; i++)
		sum ^= row[i] & col[i];
	left  = (sum >> 32) & 0xFFFFFFFF;
	right =  sum        & 0xFFFFFFFF;
	return (count_bits(left) + count_bits(right)) % 2;
}

int
main(int argc, char *argv[])
{
	int  nums, n;
	unum bit, count;
	unum rows[NMAX][NUMS];
	unum cols[NMAX][NUMS];
	char buf[NMAX+2];

	std::memset(rows, 0, NMAX*NUMS*sizeof(unum));
	std::memset(cols, 0, NMAX*NUMS*sizeof(unum));
	std::memset(buf, 0, NMAX+2);
	std::cin.sync_with_stdio(false);
	std::cin >> n;
	std::cin.getline(buf, 0);

	for(int i = 0; i < n; i++) {
		std::cin.getline(buf, n+1);
		for(int j = 0; j < n; j++) {
			bit = buf[j] - '0';
			rows[i][j/nbits] |= bit << j%nbits;
			cols[j][i/nbits] |= bit << i%nbits;
		}
	}

	count = 0;
	nums = n/nbits + 1;
	if(nums > NUMS)
		nums = NUMS;
	for(int i = 0; i < n; i++)
		for(int j = 0; j < n; j++)
			count += scalar_product_mod2(rows[i], cols[j], nums);
	
	std::cout << count << std::endl;

	return 0;
}