# C++11 metaprogramming, 348bytes

    #include<iostream>
    #define D static const unsigned long long v=
    template<int L>struct F{D F<L-1>::v+F<L-2>::v;};template<>struct F<2>{D 1;};template<>struct F<1>{D 1;};template<int Z>struct S:S<Z-1>{S(){auto&s=std::cout;auto l=F<Z>::v;s<<(l%2?"":"Fibo")<<(l%3?"":"Nacci");(l%2&&l%3?s<<l:s)<<"\n";}};template<>struct S<0>{S(){}};int main(){S<100>s;}

Because, why not. It compiles with `warning C4307: '+': integral constant overflow`, runs fine, but 93+ th Fibonacci numbers are not shown correctly (due to overflow), so this is invalid entry (but I could not win it with that much of bytes though)

Ungolfed

    #include <iostream>
    #define D static const unsigned long long v = 
    template<int L>struct F { D F<L - 1>::v + F<L - 2>::v; };
    template<>struct F<2> { D 1; };
    template<>struct F<1> { D 1; };
    
    template<int Z>struct S : S<Z - 1>
    {
        S()
        {
            auto&s = std::cout;
            auto l = F<Z>::v;
            s << (l % 2 ? "" : "Fibo")
              << (l % 3 ? "" : "Nacci");
            (l % 2 && l % 3 ? s << l : s) << "\n";
        }
    };
    
    template<>struct S<0>
    {
        S() { }
    };
    
    int main()
    {
        S<15>s;
    }