Базовый алгоритм