queen = [0 for c in range(8)]     
rfree = [True for r in range(8)]
du = [True for i in range(15)]
dd = [True for i in range(15)]

def solve(c):
	global solutions

	if c == 8:
		solutions += 1 
		print(solutions, end = ": ")
		for r in range(8):
			print (queen[r] + 1 ,end = " " if r<7 else "\n")
	else:		
		for r in range(8):
			if rfree[r] and dd[c + r] and du[ c+7-r]:
				queen[c] = r
				rfree[r] = dd[ c+r ] = du[ c+7-r ] = False
				solve(c+1)
				rfree[r] = dd[ c+r ] = du[ c+7-r ] = True

solutions = 0
solve(0)
print()
print(solutions, "solutions")