#include <iostream>
#include <array>
 

template<template<typename>class T,typename...Args>
struct A<T<Args...>>
{
    constexpr static int value=1;
};
 
template<template<typename>class T,typename...Args>
struct A<T<Args...> const>
{//const container used for type of  return arguments
    constexpr static int value=2;
};
 
int main()
{
    using Type=const std::array<int,10>;
    std::cout<<A<Type>::value;
}