#include <iostream>
// Primary template for FizzBuzz
template<int N>
struct FizzBuzz {
static void print() {
if constexpr (N % 15 == 0)
std::cout << "FizzBuzz\n";
else if constexpr (N % 3 == 0)
std::cout << "Fizz\n";
else if constexpr (N % 5 == 0)
std::cout << "Buzz\n";
else
std::cout << N << '\n';
FizzBuzz<N + 1>::print();
}
};
// Specialization to end recursion at 100
template<>
struct FizzBuzz<101> {
static void print() {}
};
int main() {
FizzBuzz<1>::print();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKLy8gUHJpbWFyeSB0ZW1wbGF0ZSBmb3IgRml6ekJ1enoKdGVtcGxhdGU8aW50IE4+CnN0cnVjdCBGaXp6QnV6eiB7CiAgICBzdGF0aWMgdm9pZCBwcmludCgpIHsKICAgICAgICBpZiBjb25zdGV4cHIgKE4gJSAxNSA9PSAwKQogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgIkZpenpCdXp6XG4iOwogICAgICAgIGVsc2UgaWYgY29uc3RleHByIChOICUgMyA9PSAwKQogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgIkZpenpcbiI7CiAgICAgICAgZWxzZSBpZiBjb25zdGV4cHIgKE4gJSA1ID09IDApCiAgICAgICAgICAgIHN0ZDo6Y291dCA8PCAiQnV6elxuIjsKICAgICAgICBlbHNlCiAgICAgICAgICAgIHN0ZDo6Y291dCA8PCBOIDw8ICdcbic7CiAgICAgICAgRml6ekJ1eno8TiArIDE+OjpwcmludCgpOwogICAgfQp9OwoKLy8gU3BlY2lhbGl6YXRpb24gdG8gZW5kIHJlY3Vyc2lvbiBhdCAxMDAKdGVtcGxhdGU8PgpzdHJ1Y3QgRml6ekJ1eno8MTAxPiB7CiAgICBzdGF0aWMgdm9pZCBwcmludCgpIHt9Cn07CgppbnQgbWFpbigpIHsKICAgIEZpenpCdXp6PDE+OjpwcmludCgpOwogICAgcmV0dXJuIDA7Cn0K