def result(rr, co, row, stadion, N):
	rr_set = set(rr)
	co_set = set(co)
	good, = co_set.difference(rr_set)
	bad_diff = rr_set.difference(co_set)
	if len(bad_diff) > 0:
		bad, = rr_set.difference(co_set)
		column = rr.index(bad) + 1
	else:
		c1, c2 = 0, 0
		for i, a in enumerate(rr):
			for ii, b in enumerate(rr):
				if (a == b) and (i != ii):
					c1, c2 = i, ii
		col1 = set([stadion[row][c1] for row in range(N)])
		if col1 == co_set:
			column = ii + 1
		else:
			column = i + 1
	row = row + 1
	print(row, column, good)
	
while True:
	try:
		N = int(input())
	except:
		break
	stadion = []
	for _ in range(N):
		stadion.append(input())
	line1 = stadion[0]
	line2 = stadion[1]
	set1 = set(line1)
	set2 = set(line2)
	if set1 != set2:
		set3 = set(stadion[2])
		if set1 == set3:
			#line2 wrong
			result(line2, line1, 1, stadion, N)
		else:
			#line1 wrong
			result(line1, line2, 0, stadion, N)
	else:
		for row in range(2, N):
			rr = stadion[row]
			if set(rr) != set1:
				result(rr, line1, row, stadion, N)

				
				
				
				
