#include <iostream>
#include <memory>

std::pair<std::function<int()>, std::function<int()>> addSome() {
	auto numbers = std::make_shared<std::pair<int, int>>(0, 0);
	
    return std::make_pair([numbers] {
    	++numbers->first;
    	++numbers->second;
        return numbers->first + numbers->second;
        }, [numbers] {
            return numbers->first;
        });
}

int main() {
    auto f = addSome();
    std::cout << f.first();
    std::cout << " " << f.second();
    return 0;
}