#include <iostream>
#include <string>
#include <limits.h>
int n;
std::string zz(std::string s, int d, const char* str){
char c = s.back();
if ('0' <= c && c <= '9'){
s.clear();
}
if (n % d == 0){
s += str;
}
return s.empty() ? std::to_string(n) : s;
}
std::string zz(int n_, int d, const char* str){
n = n_;
return zz(std::to_string(n_), d, str);
}
template < typename T > std::string fizz(T t){
return zz(t, 3, "Fizz");
}
template < typename T > std::string buzz(T t){
return zz(t, 5, "Buzz");
}
template < typename T > std::string gizz(T t){
return zz(t, 7, "Gizz");
}
int main(){
std::cout << buzz(fizz(1)) << std::endl;
std::cout << buzz(fizz(3)) << std::endl;
std::cout << buzz(fizz(5)) << std::endl;
std::cout << buzz(fizz(15)) << std::endl;
std::cout << buzz(fizz(997)) << std::endl;
std::cout << gizz(buzz(fizz(1))) << std::endl;
std::cout << gizz(buzz(fizz(3))) << std::endl;
std::cout << gizz(buzz(fizz(5))) << std::endl;
std::cout << gizz(buzz(fizz(15))) << std::endl;
std::cout << gizz(buzz(fizz(997))) << std::endl;
std::cout << gizz(buzz(fizz(7))) << std::endl;
std::cout << gizz(buzz(fizz(21))) << std::endl;
std::cout << gizz(buzz(fizz(35))) << std::endl;
std::cout << gizz(buzz(fizz(105))) << std::endl;
std::cout << buzz(gizz(fizz(105))) << std::endl;
std::cout << gizz(buzz(fizz(0))) << std::endl;
std::cout << gizz(buzz(fizz(-1))) << std::endl;
std::cout << gizz(buzz(fizz(-997))) << std::endl;
std::cout << gizz(buzz(fizz(INT_MAX))) << std::endl;
std::cout << gizz(buzz(fizz(INT_MIN))) << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8bGltaXRzLmg+CmludCBuOwoKc3RkOjpzdHJpbmcgenooc3RkOjpzdHJpbmcgcywgaW50IGQsIGNvbnN0IGNoYXIqIHN0cil7CgljaGFyIGMgPSBzLmJhY2soKTsKCWlmICgnMCcgPD0gYyAmJiBjIDw9ICc5Jyl7CgkJcy5jbGVhcigpOwoJfQoJaWYgKG4gJSBkID09IDApewoJCXMgKz0gc3RyOwoJfQoJcmV0dXJuIHMuZW1wdHkoKSA/IHN0ZDo6dG9fc3RyaW5nKG4pIDogczsKfQpzdGQ6OnN0cmluZyB6eihpbnQgbl8sIGludCBkLCBjb25zdCBjaGFyKiBzdHIpewoJbiA9IG5fOwoJcmV0dXJuIHp6KHN0ZDo6dG9fc3RyaW5nKG5fKSwgZCwgc3RyKTsKfQoKdGVtcGxhdGUgPCB0eXBlbmFtZSBUID4gc3RkOjpzdHJpbmcgZml6eihUIHQpewoJcmV0dXJuIHp6KHQsIDMsICJGaXp6Iik7Cn0KdGVtcGxhdGUgPCB0eXBlbmFtZSBUID4gc3RkOjpzdHJpbmcgYnV6eihUIHQpewoJcmV0dXJuIHp6KHQsIDUsICJCdXp6Iik7Cn0KdGVtcGxhdGUgPCB0eXBlbmFtZSBUID4gc3RkOjpzdHJpbmcgZ2l6eihUIHQpewoJcmV0dXJuIHp6KHQsIDcsICJHaXp6Iik7Cn0KCmludCBtYWluKCl7CglzdGQ6OmNvdXQgPDwgYnV6eihmaXp6KDEpKSA8PCBzdGQ6OmVuZGw7CglzdGQ6OmNvdXQgPDwgYnV6eihmaXp6KDMpKSA8PCBzdGQ6OmVuZGw7CglzdGQ6OmNvdXQgPDwgYnV6eihmaXp6KDUpKSA8PCBzdGQ6OmVuZGw7CglzdGQ6OmNvdXQgPDwgYnV6eihmaXp6KDE1KSkgPDwgc3RkOjplbmRsOwoJc3RkOjpjb3V0IDw8IGJ1enooZml6eig5OTcpKSA8PCBzdGQ6OmVuZGw7CglzdGQ6OmNvdXQgPDwgZ2l6eihidXp6KGZpenooMSkpKSA8PCBzdGQ6OmVuZGw7CglzdGQ6OmNvdXQgPDwgZ2l6eihidXp6KGZpenooMykpKSA8PCBzdGQ6OmVuZGw7CglzdGQ6OmNvdXQgPDwgZ2l6eihidXp6KGZpenooNSkpKSA8PCBzdGQ6OmVuZGw7CglzdGQ6OmNvdXQgPDwgZ2l6eihidXp6KGZpenooMTUpKSkgPDwgc3RkOjplbmRsOwoJc3RkOjpjb3V0IDw8IGdpenooYnV6eihmaXp6KDk5NykpKSA8PCBzdGQ6OmVuZGw7CglzdGQ6OmNvdXQgPDwgZ2l6eihidXp6KGZpenooNykpKSA8PCBzdGQ6OmVuZGw7CglzdGQ6OmNvdXQgPDwgZ2l6eihidXp6KGZpenooMjEpKSkgPDwgc3RkOjplbmRsOwoJc3RkOjpjb3V0IDw8IGdpenooYnV6eihmaXp6KDM1KSkpIDw8IHN0ZDo6ZW5kbDsKCXN0ZDo6Y291dCA8PCBnaXp6KGJ1enooZml6eigxMDUpKSkgPDwgc3RkOjplbmRsOwoJc3RkOjpjb3V0IDw8IGJ1enooZ2l6eihmaXp6KDEwNSkpKSA8PCBzdGQ6OmVuZGw7CglzdGQ6OmNvdXQgPDwgZ2l6eihidXp6KGZpenooMCkpKSA8PCBzdGQ6OmVuZGw7CglzdGQ6OmNvdXQgPDwgZ2l6eihidXp6KGZpenooLTEpKSkgPDwgc3RkOjplbmRsOwoJc3RkOjpjb3V0IDw8IGdpenooYnV6eihmaXp6KC05OTcpKSkgPDwgc3RkOjplbmRsOwoJc3RkOjpjb3V0IDw8IGdpenooYnV6eihmaXp6KElOVF9NQVgpKSkgPDwgc3RkOjplbmRsOwoJc3RkOjpjb3V0IDw8IGdpenooYnV6eihmaXp6KElOVF9NSU4pKSkgPDwgc3RkOjplbmRsOwoJcmV0dXJuIDA7Cn0K