#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<typename C, typename T>
class MyMoreGenericCollection
{
    using collection = C<T>;
};

int main() {
    // your code goes here
    MyVectorCollection<int> a;
    MyGenericCollection<std::list<int>, int> b;
    MyMoreGenericCollection<std::list, int> c;
    return 0;
}