>>376
(4-2)
#include <iostream>
template <int M, int N>
struct Power { enum { Value = Power<M, N - 1>::Value * M }; };
template <int M>
struct Power<M, 1> { enum { Value = M }; };
int main()
{
    std::cout << Power<1,2>::Value << std::endl;
    std::cout << Power<11,2>::Value << std::endl;
    std::cout << Power<111,2>::Value << std::endl;
    std::cout << Power<1111,2>::Value << std::endl;
    std::cout << Power<11111,2>::Value << std::endl;
}