#include <iostream>
#include <cstring>

#define NMAX 4000
#define INTS 125

const int nbits = sizeof(int)*8;

int
onlyone(unsigned int *col, unsigned int *row, int n)
{
	int bits;
	unsigned int bit, prod;
	bits = 0;
	for(int i = 0; i < n; i++) {
		prod = row[i] & col[i];
		if(prod == 0)
			continue;
		for(; prod != 0; prod >>= 1) {
			bit = prod & 1U;
			if(bit == 0U)
				continue;
			if(bits != 0)
				return 0;
			bits = 1;
		}
	}
	return bits;
}

int
main(int argc, char *argv[])
{
	int bit, ints, n, count;
	unsigned int rows[NMAX][INTS];
	unsigned int cols[NMAX][INTS];
	char buf[NMAX+2];

	std::memset(rows, 0, NMAX*INTS*sizeof(int));
	std::memset(cols, 0, NMAX*INTS*sizeof(int));
	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;
	ints = n/nbits + 1;
	if(ints > INTS)
		ints = INTS;
	for(int i = 0; i < n; i++)
		for(int j = 0; j < n; j++)
			count += onlyone(rows[i], cols[j], ints);
	
	std::cout << count << std::endl;

	return 0;
}