
#include <iostream>


template <int I> struct Fib
{
    enum { Value = Fib<I-1>::Value + Fib<I-2>::Value };
};


template < > struct Fib<1>
{
    enum { Value = 1 };
};

template < > struct Fib<0>
{
    enum { Value = 0 };
};


int main(int argc, char **argv)
{

    std::cout << Fib<6>::Value << std::endl;



}
