#include <iostream>

class Fibonacci
{
public:
    unsigned int fibo()
    {
        if (this == nullptr)
            return 0;
        if (this - 1 == nullptr)
            return 1;
        return (this - 1)->fibo() + (this - 2)->fibo();
    }
}

int main(void)
{
    unsigned int n;
   
    std::cin >> n;
    std::cout << ((Fibonacci *)(n))->fibo();

    return 0;
}

this 포인터가 작동하는 법에 대해 재밌게 이해할 수 있는 코드야