#include <iostream>
#include <cstdint>
std::uintmax_t MakeHoge(std::uintmax_t N) {
std::uintmax_t R = 1;
if (N == 0) { return 0; }
if (N == 1) { return 1; }
while (N) {
if (N == 3) {
N -= 3;
R *= 3;
}else{
N -= 2;
R *= 2;
}
//n== 1 is R*1=?.
}
return R;
}
int main() {
for (std::size_t i = 0; i <= 100; i++) {
std::uintmax_t N = MakeHoge(i);
std::cout << i << ':' << N << std::endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGludD4KCnN0ZDo6dWludG1heF90IE1ha2VIb2dlKHN0ZDo6dWludG1heF90IE4pIHsKCglzdGQ6OnVpbnRtYXhfdCBSID0gMTsKCWlmIChOID09IDApIHsgcmV0dXJuIDA7IH0KCWlmIChOID09IDEpIHsgcmV0dXJuIDE7IH0KCXdoaWxlIChOKSB7CgkJaWYgKE4gPT0gMykgewoJCQlOIC09IDM7CgkJCVIgKj0gMzsKCQl9ZWxzZXsKCQkJTiAtPSAyOwoJCQlSICo9IDI7CgkJfQoJCS8vbj09IDEgaXMgUioxPT8uCgl9CglyZXR1cm4gUjsKfQoKaW50IG1haW4oKSB7CgoJZm9yIChzdGQ6OnNpemVfdCBpID0gMDsgaSA8PSAxMDA7IGkrKykgewoJCXN0ZDo6dWludG1heF90IE4gPSBNYWtlSG9nZShpKTsKCQlzdGQ6OmNvdXQgPDwgaSA8PCAnOicgPDwgTiA8PCBzdGQ6OmVuZGw7Cgl9CgoJcmV0dXJuIDA7Cn0=