Sent you a PM. 
Here my solution in Python:
	Code:
	
import sys, string
def printf(fmt, *args): sys.stdout.write(fmt % args)
def getnum(prompt):
	num = 0
	while num==0:
		printf(prompt)
		try:
			num = int(sys.stdin.readline())
		except:
			num = 0
	return num
class area:
	houses = []
	rows = 0
	cols = 0
	vrow = 0
	vcol = 0
	
	def __init__(self,n,m):
	
		self.cols = n
		self.rows = m
		
		self.vcol = n
		self.vrow = m
		
		for h in range(0, self.rows):
			self.houses.append([])
			
			for k in range(0, self.cols):
				self.houses[h].append(1)
	def print_row_divider(self):
		for i in range(0, self.cols):
			if (i % 3) == 0:
				printf("+---")
			else:
				printf("--")
		printf("+\n")
	def show(self):
		for h in range(0, self.rows):
			
			if h % 2 == 0:
				self.print_row_divider()
				
			if h % 2 == 1:
				printf("\n")
			
			for k in range(0, self.cols):
				if k % 3 == 0: 
					printf("| ")
				
				if k==self.vcol and h==self.vrow:
					printf("V ")
				else:
					printf("%d ", self.houses[h][k])
				
			printf("|\n")
		if self.rows % 2 == 1:
			printf("\n")
		
		self.print_row_divider()
	
	def toggle(self, row, col):
		try: 
			if (self.houses[row][col]):
				self.houses[row][col] = 0
			else:
				self.houses[row][col] = 1
		except:
			pass
	
		
	def visit(self, h):
		self.vrow = (h - 1) / self.cols
		self.vcol = (h - 1) % self.cols
		#printf("Visit: %d %d\n", self.vrow, self.vcol)
		
		#toggle across the street
		if self.vrow % 2==0:
			self.toggle(self.vrow+1, self.vcol)
			
		#boundary
		if self.vrow % 2==0:
			self.toggle(self.vrow, self.vcol+1)
			self.toggle(self.vrow, self.vcol+2)
		if self.vrow % 2==1:
			self.toggle(self.vrow, self.vcol)
			self.toggle(self.vrow, self.vcol+2)
		if self.vrow % 2==2:
			self.toggle(self.vrow, self.vcol)
			self.toggle(self.vrow, self.vcol+1)
		
		
n = getnum("Enter grid length (n):")
m = getnum("Enter grid width (m):")
h = area(n,m)
h.show()
while 1:
	printf("\nChoice: M-manual visit, F-read from file, X-exit ->");
	try:
		z = sys.stdin.readline()
		z = string.strip(string.upper(z))
	except:
		z = " "
	if z=="X": 
		break
		
	elif z=="M":
	
		while 1:
			printf("\n")
			printf("House to visit:")
	
			try:
				v = int(sys.stdin.readline())
			except:
				break
	
			h.visit(v)
			h.show()
	
	elif z=="F":
		
		while 1:
			printf("Filename:")
			try:
				fn = string.strip(sys.stdin.readline())
				if fn=="": break
				
				fz = open(fn,"r")
				for line in fz:
					hna = string.split(line)
					for hn in hna:
						try:
							i = int(hn)
							printf("Visit house number %d\n", i)
							h.visit(i)
							h.show()
							printf("\n\n")
						except:
							pass
				break;
			except:
				pass