Ну вроде запилил крутой алгоритм, но он почему то работает херово )))