переписал на std::ap