3 основных алгоритма