#include <iostream>


template<typename T>
struct S{
    void hi(){
    	std::cout << "base" << std::endl;
    }
};
template<typename T, std::size_t I>
struct S<T[I]>{
    void hi(){
    	std::cout << "specialized" << std::endl;
    }
};

int main() {
	S<int>{}.hi();
	S<int[4]>{}.hi();
	return 0;
}