#include <iostream>
#include <vector>
#include <list>
template<typename T>
class MyVectorCollection
{
using collection = std::vector<T>;
};
template<typename C, typename T>
class MyGenericCollection
{
using collection = C;
};
template<template<typename, typename> class C, typename T>
class MyMoreGenericCollection
{
using collection = C<T, std::allocator<T>>;
};
int main() {
// your code goes here
MyVectorCollection<int> a;
MyGenericCollection<std::list<int>, int> b;
MyMoreGenericCollection<std::list, int> c;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bGlzdD4KCnRlbXBsYXRlPHR5cGVuYW1lIFQ+CmNsYXNzIE15VmVjdG9yQ29sbGVjdGlvbgp7CiAgICB1c2luZyBjb2xsZWN0aW9uID0gc3RkOjp2ZWN0b3I8VD47Cn07Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBUPgpjbGFzcyBNeUdlbmVyaWNDb2xsZWN0aW9uCnsKICAgIHVzaW5nIGNvbGxlY3Rpb24gPSBDOwp9OwoKdGVtcGxhdGU8dGVtcGxhdGU8dHlwZW5hbWUsIHR5cGVuYW1lPiBjbGFzcyBDLCB0eXBlbmFtZSBUPgpjbGFzcyBNeU1vcmVHZW5lcmljQ29sbGVjdGlvbgp7CiAgICB1c2luZyBjb2xsZWN0aW9uID0gQzxULCBzdGQ6OmFsbG9jYXRvcjxUPj47Cn07CgppbnQgbWFpbigpIHsKICAgIC8vIHlvdXIgY29kZSBnb2VzIGhlcmUKICAgIE15VmVjdG9yQ29sbGVjdGlvbjxpbnQ+IGE7CiAgICBNeUdlbmVyaWNDb2xsZWN0aW9uPHN0ZDo6bGlzdDxpbnQ+LCBpbnQ+IGI7CiAgICBNeU1vcmVHZW5lcmljQ29sbGVjdGlvbjxzdGQ6Omxpc3QsIGludD4gYzsKICAgIHJldHVybiAwOwp9