main. поправлен.
Поправлено в соответсвии с замечаниями. Рабочий код