Значительно усовершенствован алгоритм