#include <iostream>
#include <set>
#include <map>
#include <algorithm>
int main()
{
typedef std::map<int, int> M;
M m { {1, -1}, {2, -2}, {3, -3}, {4, -4} };
auto&& x = std::accumulate(std::begin(m), std::end(m), std::set<int>{},
[](std::set<int>& s, const M::value_type& e) {//std::pair<const int, int>& e) {
return s.insert(e.first), s;
});
for (auto& i : x)
std::cout << i << ' ';
std::cout << '\n';
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKaW50IG1haW4oKQp7Cgl0eXBlZGVmIHN0ZDo6bWFwPGludCwgaW50PiBNOwoJCglNIG0geyB7MSwgLTF9LCB7MiwgLTJ9LCB7MywgLTN9LCB7NCwgLTR9IH07CgkKCWF1dG8mJiB4ID0gc3RkOjphY2N1bXVsYXRlKHN0ZDo6YmVnaW4obSksIHN0ZDo6ZW5kKG0pLCBzdGQ6OnNldDxpbnQ+e30sCgkgICAgICAgICAgICAgICAgICAgICAgICAgICBbXShzdGQ6OnNldDxpbnQ+JiBzLCBjb25zdCBNOjp2YWx1ZV90eXBlJiBlKSB7Ly9zdGQ6OnBhaXI8Y29uc3QgaW50LCBpbnQ+JiBlKSB7CgkgICAgICAgICAgICAgICAgICAgICAgICAgICAJICByZXR1cm4gcy5pbnNlcnQoZS5maXJzdCksIHM7CgkgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKCWZvciAoYXV0byYgaSA6IHgpCgkgICAgc3RkOjpjb3V0IDw8IGkgPDwgJyAnOwoJc3RkOjpjb3V0IDw8ICdcbic7Cn0=