Вроде бы все условия выполнены и вывод в файл абсолютно верный