#include <iostream>
#include <map>
#include <vector>
#include <string>
template< class T >
std::ostream & operator << ( std::ostream & os, const std::vector< T > & v ) {
for ( const auto & i : v ) {
os << i << std::endl;
}
return os;
}
template< class K, class V >
std::ostream & operator << ( std::ostream & os, const std::multimap< K, V > & m ) {
for ( const auto & i : m ) {
os << i.first << " : " << std::endl;
os << i.second << std::endl;
}
return os;
}
int main() {
std::multimap<int, std::vector< std::string > > m;
m.insert(std::make_pair( 1, std::vector< std::string >( {"one", "two", "three" } ) ) );
m.insert(std::make_pair( 10, std::vector< std::string >( {"ten", "twenty", "thirty" } ) ) );
m.insert(std::make_pair( 42, std::vector< std::string >( {"foutry", "two" } ) ) );
std::cout << m;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgoKdGVtcGxhdGU8IGNsYXNzIFQgPgpzdGQ6Om9zdHJlYW0gJiBvcGVyYXRvciA8PCAoIHN0ZDo6b3N0cmVhbSAmIG9zLCBjb25zdCBzdGQ6OnZlY3RvcjwgVCA+ICYgdiApIHsKICAgIGZvciAoIGNvbnN0IGF1dG8gJiBpIDogdiApIHsKICAgICAgICBvcyA8PCBpIDw8IHN0ZDo6ZW5kbDsKICAgIH0KICAgIHJldHVybiBvczsKfQoKdGVtcGxhdGU8IGNsYXNzIEssIGNsYXNzIFYgPgpzdGQ6Om9zdHJlYW0gJiBvcGVyYXRvciA8PCAoIHN0ZDo6b3N0cmVhbSAmIG9zLCBjb25zdCBzdGQ6Om11bHRpbWFwPCBLLCBWID4gJiBtICkgewogICAgZm9yICggY29uc3QgYXV0byAmIGkgOiBtICkgewogICAgICAgIG9zIDw8IGkuZmlyc3QgPDwgIiA6ICIgPDwgc3RkOjplbmRsOwogICAgICAgIG9zIDw8IGkuc2Vjb25kIDw8IHN0ZDo6ZW5kbDsKICAgIH0KICAgIHJldHVybiBvczsKfQoKaW50IG1haW4oKSB7CiAgICBzdGQ6Om11bHRpbWFwPGludCwgc3RkOjp2ZWN0b3I8IHN0ZDo6c3RyaW5nID4gPiBtOwoKICAgIG0uaW5zZXJ0KHN0ZDo6bWFrZV9wYWlyKCAxLCBzdGQ6OnZlY3Rvcjwgc3RkOjpzdHJpbmcgPiggeyJvbmUiLCAidHdvIiwgInRocmVlIiB9ICkgKSApOwogICAgbS5pbnNlcnQoc3RkOjptYWtlX3BhaXIoIDEwLCBzdGQ6OnZlY3Rvcjwgc3RkOjpzdHJpbmcgPiggeyJ0ZW4iLCAidHdlbnR5IiwgInRoaXJ0eSIgfSApICkgKTsKICAgIG0uaW5zZXJ0KHN0ZDo6bWFrZV9wYWlyKCA0Miwgc3RkOjp2ZWN0b3I8IHN0ZDo6c3RyaW5nID4oIHsiZm91dHJ5IiwgInR3byIgfSApICkgKTsKICAgIAogICAgc3RkOjpjb3V0IDw8IG07Cn0=