#include <iostream>
using namespace std;

template <bool T, bool U, int V>
struct doFizBuzz
{
	doFizBuzz() {}
};

template <int V>
struct doFizBuzz<false, false, V>
{
	doFizBuzz()
	{
		std::cout<<V;
	}
};

template <int V>
struct doFizBuzz<true, false, V>
{
	doFizBuzz()
	{
		std::cout<<"Fizz";
	}
};

template <int V>
struct doFizBuzz<false, true, V>
{
	doFizBuzz()
	{
		std::cout<<"Buzz";
	}
};

template <int V>
struct doFizBuzz<true, true, V>
{
	doFizBuzz()
	{
		std::cout<<"FizzBuzz";
	}
};

template<int T>
struct fizbuzz: fizbuzz<T - 1>
{
	constexpr static bool fizz = ((T % 3) == 0);
	constexpr static bool buzz = ((T % 5) == 0);
	
	using F = doFizBuzz<fizz, buzz, T>;
	
	fizbuzz() { F(); std::cout<<std::endl; }
};

template<>
struct fizbuzz<0>
{	
	fizbuzz() {}
};

int main() {
	// your code goes here
	
	fizbuzz<100> f;
	
	return 0;
}