#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;
}