#!/usr/bin/env python

try:
	import psyco
	psyco.full()
except ImportError:
	pass # but I'm so much slower this way

def checkpos(b, i, j):
	d = len(b)
	for p in xrange(d):
		if p != i and b[p][j].lower() == 'x':
			return 'vert: (%s,%s) - (%s,%s)' % (i,j,p,j)
		if p != j and b[i][p].lower() == 'x':
			return 'horz: (%s,%s) - (%s,%s)' % (i,j,i,p)
	for p in xrange(-d, d + 1):
		if p and i + p >= 0 and j + p >= 0 and i + p < d and j + p < d:
			if b[i+p][j+p].lower() == 'x':
				return 'diag: (%s,%s) - (%s,%s)' % (i,j,i+p,j+p)
	return ''

def checkq(b):
	if isinstance(b, basestring):
		b = b.split('\n')
	d = len(b)
	for i in xrange(d):
		for j in xrange(d):
			if b[i][j].lower() == 'x':
				ret = checkpos(b, i, j)
				if ret:
					return ret
	return ''

def general_board(n):
	ret = [['.' for i in xrange(n)] for j in xrange(n)]
	if n % 2:
		ret[n - 1][n - 1] = 'x'
		n = n - 1
	for i in xrange(n//2):
		j = 2 * i + 1
		ret[i][j] = 'x'
	for i in xrange(n//2, n):
		j = (2 * i) % n
		ret[i][j] = 'x'
	return ret

def sixkplustwo_board(n):
	ret = [['.' for i in xrange(n)] for j in xrange(n)]
	if n % 2:
		ret[n - 1][n - 1] = 'x'
		n = n - 1
	for i in xrange(n//2):
		j = (n//2 + 2 * i - 1) % n
		ret[i][j] = 'x'
	for i in xrange(n//2, n):
		j = (n//2 + 2 * i + 2) % n
		ret[i][j] = 'x'
	return ret

def disp(b):
	for line in b:
		print ''.join(line)

def docheck():
	for i in xrange(8, 351):
		if (i - 2) % 6 == 0:
			b = sixkplustwo_board(i)
		else:
			b = general_board(i)
		print '%s: %s' % (i, not checkq(b))

if __name__ == '__main__':
	docheck()
