Можно как
dimonchik2013 предложил, а можно действительно сплитом и просто словарь использовать, set нужен только для отработки случая когда нужно с лексикографическим порядком разруливать.
#!/usr/bin/env python3
counts = dict()
with open('input.txt', 'rt') as fin:
for line in fin:
for word in line.split():
counts[word] = counts.get(word, 0) + 1
max = 0
max_word = set()
for word, cnt in counts.items():
if cnt > max:
max_word = {word}
max = cnt
if cnt == max:
max_word.add(word)
with open('output.txt', 'wt') as fout:
fout.write(min(max_word))
Кстати у вас в коде нет ничего именно по поводу лексикографического порядка при выборе слова из списка (тех у которых максимальная встречаемость равна и максимальна).
И еще: Файл одним чехом читать - не совсем правильно. В задаче он может и 1МБ, а в жизни может оказаться 1Тб - и вы сразу создадите краш с переполнением - не факт что этот краш нельзя использовать для взлома системы, например.