#include <list>
#include <map>
#include <set>
#include <string>
#include <iostream>
int main()
{
std::list<std::map<std::set<std::string>, int>> l =
{
{
{{"a"}, 0},
{{"b"}, 1},
{{"c"}, 2},
},{
{{"a", "b"}, 3},
{{"a", "c"}, 4},
{{"b", "c"}, 5}
},{
{{"a", "b", "c"}, 6},
}
};
for(auto& m : l)
for(auto& p: m)
std::cout << p.second << ' ';
std::cout << '\n';
}
I2luY2x1ZGUgPGxpc3Q+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxpb3N0cmVhbT4KCmludCBtYWluKCkKewogICAgc3RkOjpsaXN0PHN0ZDo6bWFwPHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiwgaW50Pj4gbCA9CiAgICB7CiAgICAgIHsKICAgICAgICB7eyJhIn0sIDB9LAogICAgICAgIHt7ImIifSwgMX0sCiAgICAgICAge3siYyJ9LCAyfSwKICAgICAgfSx7CiAgICAgICAge3siYSIsICJiIn0sIDN9LAogICAgICAgIHt7ImEiLCAiYyJ9LCA0fSwKICAgICAgICB7eyJiIiwgImMifSwgNX0KICAgICAgfSx7CiAgICAgICAge3siYSIsICJiIiwgImMifSwgNn0sCiAgICAgIH0KICAgIH07CgogICAgZm9yKGF1dG8mIG0gOiBsKQogICAgICAgIGZvcihhdXRvJiBwOiBtKQogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgcC5zZWNvbmQgPDwgJyAnOwogICAgc3RkOjpjb3V0IDw8ICdcbic7Cn0K