#include <stdio.h>
#include <vector>
#include <algorithm>
#include <sstream>
#include <string>
template <class T, class U>
T lexical_cast(U input) {
T result;
std::stringstream b;
b << input;
b >> result;
return result;
}
template <int num>
void show(std::string const &s) {
show<num-1>(s + "0");
show<num-1>(s + "1");
}
template<>
void show<0>(std::string const &val) {
char *c[] = { "OLD", "WALLOW", "HERE", " SWORE" };
char **cp[] = { c+3, c+2, c+1, c };
char ***cpp = cp;
printf("%.2s", **++cpp);
printf("%.3s ", **++cpp+2);
printf("%.3s", cpp[1][3]+2);
printf("%s", val.length() < 6 ? "" : val.substr(6).c_str());
printf("%s", *cpp[1]+1);
printf("%c\n", *(*cpp[-2])+1);
}
int main() {
std::vector<std::string> nums;
for (int i=0; i<5; i++)
if (i % 3 == 0)
nums.push_back("fizz");
else if (i % 5 == 0)
nums.push_back("buzz");
else
nums.push_back(lexical_cast<std::string>(i));
std::for_each(nums.begin(), nums.end(), show<1>);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxzc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFU+ClQgbGV4aWNhbF9jYXN0KFUgaW5wdXQpIHsKICAgIFQgcmVzdWx0OwogICAgc3RkOjpzdHJpbmdzdHJlYW0gYjsKICAgIGIgPDwgaW5wdXQ7CiAgICBiID4+IHJlc3VsdDsKICAgIHJldHVybiByZXN1bHQ7Cn0KCnRlbXBsYXRlIDxpbnQgbnVtPgp2b2lkIHNob3coc3RkOjpzdHJpbmcgY29uc3QgJnMpIHsKICAgIHNob3c8bnVtLTE+KHMgKyAiMCIpOwogICAgc2hvdzxudW0tMT4ocyArICIxIik7Cn0KCnRlbXBsYXRlPD4Kdm9pZCBzaG93PDA+KHN0ZDo6c3RyaW5nIGNvbnN0ICZ2YWwpIHsKICAgIGNoYXIgKmNbXSA9IHsgIk9MRCIsICJXQUxMT1ciLCAiSEVSRSIsICIgU1dPUkUiIH07CiAgICBjaGFyICoqY3BbXSA9IHsgYyszLCBjKzIsIGMrMSwgYyB9OwogICAgY2hhciAqKipjcHAgPSBjcDsKICAgIHByaW50ZigiJS4ycyIsICoqKytjcHApOwogICAgcHJpbnRmKCIlLjNzICIsICoqKytjcHArMik7CiAgICBwcmludGYoIiUuM3MiLCBjcHBbMV1bM10rMik7CiAgICBwcmludGYoIiVzIiwgdmFsLmxlbmd0aCgpIDwgNiA/ICIiIDogdmFsLnN1YnN0cig2KS5jX3N0cigpKTsKICAgIHByaW50ZigiJXMiLCAqY3BwWzFdKzEpOwogICAgcHJpbnRmKCIlY1xuIiwgKigqY3BwWy0yXSkrMSk7Cn0KCgppbnQgbWFpbigpIHsKICAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBudW1zOwogICAgZm9yIChpbnQgaT0wOyBpPDU7IGkrKykKICAgICAgICBpZiAoaSAlIDMgPT0gMCkKICAgICAgICAgICAgbnVtcy5wdXNoX2JhY2soImZpenoiKTsKICAgICAgICBlbHNlIGlmIChpICUgNSA9PSAwKQogICAgICAgICAgICBudW1zLnB1c2hfYmFjaygiYnV6eiIpOwogICAgICAgIGVsc2UKICAgICAgICAgICAgbnVtcy5wdXNoX2JhY2sobGV4aWNhbF9jYXN0PHN0ZDo6c3RyaW5nPihpKSk7CiAgICAgICAgCiAgICBzdGQ6OmZvcl9lYWNoKG51bXMuYmVnaW4oKSwgbnVtcy5lbmQoKSwgc2hvdzwxPik7CiAgICByZXR1cm4gMDsKfQo=