Более конкретная версия первого алгоритма во втором задании