#include <array>
#include <iostream>
template<typename T, std::size_t Size, std::size_t ...Sizes>
struct MultiArray : public std::array<MultiArray<T, Sizes...>, Size>
{
};
template<typename T, std::size_t Size>
struct MultiArray<T, Size> : public std::array<T, Size>
{
};
int main()
{
MultiArray<int, 3, 6, 8> ma;
std::cout << ma.size() << std::endl;
std::cout << ma[0].size() << std::endl;
std::cout << ma[0][0].size() << std::endl;
}
I2luY2x1ZGUgPGFycmF5PgojaW5jbHVkZSA8aW9zdHJlYW0+Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzdGQ6OnNpemVfdCBTaXplLCBzdGQ6OnNpemVfdCAuLi5TaXplcz4Kc3RydWN0IE11bHRpQXJyYXkgOiBwdWJsaWMgc3RkOjphcnJheTxNdWx0aUFycmF5PFQsIFNpemVzLi4uPiwgU2l6ZT4Kewp9OwoKdGVtcGxhdGU8dHlwZW5hbWUgVCwgc3RkOjpzaXplX3QgU2l6ZT4Kc3RydWN0IE11bHRpQXJyYXk8VCwgU2l6ZT4gOiBwdWJsaWMgc3RkOjphcnJheTxULCBTaXplPgp7Cn07CgppbnQgbWFpbigpCnsKCU11bHRpQXJyYXk8aW50LCAzLCA2LCA4PiBtYTsKCQoJc3RkOjpjb3V0IDw8IG1hLnNpemUoKSA8PCBzdGQ6OmVuZGw7CglzdGQ6OmNvdXQgPDwgbWFbMF0uc2l6ZSgpIDw8IHN0ZDo6ZW5kbDsKCXN0ZDo6Y291dCA8PCBtYVswXVswXS5zaXplKCkgPDwgc3RkOjplbmRsOwp9