#include <iostream>
using namespace std;
typedef unsigned long long ull;
ull m[100];
ull fib(ull i) {m[i] = m[i] ? m[i] : (i<2 ? i : fib(i-1)+fib(i-2));
return m[i];}
int main() {cout<<fib(10)<<endl<<fib(50); return 0;}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWxsOwp1bGwgbVsxMDBdOwoKdWxsIGZpYih1bGwgaSkge21baV0gPSBtW2ldID8gbVtpXSA6IChpPDIgPyBpIDogZmliKGktMSkrZmliKGktMikpOwogICAgcmV0dXJuIG1baV07fQoKaW50IG1haW4oKSB7Y291dDw8ZmliKDEwKTw8ZW5kbDw8ZmliKDUwKTsgcmV0dXJuIDA7fQ==