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