#include <iostream>
#include <vector>
#include <set>
template <template <typename...> class C, typename... T>
struct wrapper {
typedef C<T...> type;
};
int main() {
wrapper<std::vector, int>::type foo { 1, 2, 3 };
wrapper<std::set, int>::type bar { 4, 5, 6 };
for (auto i : foo)
std::cout << i << ' ';
for (auto i : bar)
std::cout << i << ' ';
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c2V0PgogCnRlbXBsYXRlIDx0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4+IGNsYXNzIEMsIHR5cGVuYW1lLi4uIFQ+CnN0cnVjdCB3cmFwcGVyIHsKICAgIHR5cGVkZWYgQzxULi4uPiB0eXBlOwp9OwogCmludCBtYWluKCkgewoJd3JhcHBlcjxzdGQ6OnZlY3RvciwgaW50Pjo6dHlwZSBmb28geyAxLCAyLCAzIH07Cgl3cmFwcGVyPHN0ZDo6c2V0LCBpbnQ+Ojp0eXBlIGJhciB7IDQsIDUsIDYgfTsKCQoJZm9yIChhdXRvIGkgOiBmb28pCiAgCQlzdGQ6OmNvdXQgPDwgaSA8PCAnICc7CiAgCWZvciAoYXV0byBpIDogYmFyKQogIAkJc3RkOjpjb3V0IDw8IGkgPDwgJyAnOwoJcmV0dXJuIDA7Cn0=