#include <iostream>
#include <iomanip>
#define N 20001 // 項數
#define W 248 // 位數
using namespace std;
int main() {
int i, j;
long long **ptr = NULL;
ptr = new long long*[N];
for (i = 0; i < N; i++) {
ptr[i] = new long long[W];
}
for (i = 0; i < N; i++) {
for (j = 0; j < W; j++) {
ptr[i][j] = 0;
}
}
ptr[0][0] = 0; //可省略
ptr[1][0] = 1;
//___________________________________
int tem = 0;
for (i = 2; i < N; i++) {
for (j = 0; j < W; j++) {
ptr[i][j] = ptr[i - 1][j] + ptr[i - 2][j] + tem;
if (ptr[i][j] >= 1000000000000000000) { //處理進未必須要有=
tem = ptr[i][j] / 1000000000000000000;
ptr[i][j] = ptr[i][j] % 1000000000000000000;
}
else
tem = 0;
}
}
// Output_______________________________________
int n;
while (cin >> n) {
for (i = n, j = W - 1; j >= 0; j--)
if (ptr[i][j] != 0) // 由大而小紀錄第一個不為0 j的位置
break;
cout << ptr[i][j]; //先印出第一項不用補零!!
for (j=j-1; j >= 0; j--) {
cout << setw(18) << setfill('0') << ptr[i][j];//第二項後在數字前面補零!!!
}
cout << endl;
}
delete[] ptr; //陣列用完記憶體記得要釋放!!
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4gCiNkZWZpbmUgTiAyMDAwMSAgLy8g6aCF5pW4CiNkZWZpbmUgVyAyNDggIC8vIOS9jeaVuAp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CgoJaW50IGksIGo7Cglsb25nIGxvbmcgKipwdHIgPSBOVUxMOwoJcHRyID0gbmV3IGxvbmcgbG9uZypbTl07Cglmb3IgKGkgPSAwOyBpIDwgTjsgaSsrKSB7CgkJcHRyW2ldID0gbmV3IGxvbmcgbG9uZ1tXXTsKCX0KCgoJZm9yIChpID0gMDsgaSA8IE47IGkrKykgewoJCWZvciAoaiA9IDA7IGogPCBXOyBqKyspIHsKCQkJcHRyW2ldW2pdID0gMDsKCQl9Cgl9CglwdHJbMF1bMF0gPSAwOyAgLy/lj6/nnIHnlaUKCXB0clsxXVswXSA9IDE7CgoJLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKCWludCB0ZW0gPSAwOwoJZm9yIChpID0gMjsgaSA8IE47IGkrKykgewoJCWZvciAoaiA9IDA7IGogPCBXOyBqKyspIHsKCQkJcHRyW2ldW2pdID0gcHRyW2kgLSAxXVtqXSArIHB0cltpIC0gMl1bal0gKyB0ZW07CgkJCWlmIChwdHJbaV1bal0gPj0gMTAwMDAwMDAwMDAwMDAwMDAwMCkgeyAgLy/omZXnkIbpgLLmnKrlv4XpoIjopoHmnIk9CgkJCQl0ZW0gPSBwdHJbaV1bal0gLyAxMDAwMDAwMDAwMDAwMDAwMDAwOwoJCQkJcHRyW2ldW2pdID0gcHRyW2ldW2pdICUgMTAwMDAwMDAwMDAwMDAwMDAwMDsKCQkJfQoJCQllbHNlCgkJCQl0ZW0gPSAwOwoJCX0KCX0KCi8vCU91dHB1dF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoJaW50IG47Cgl3aGlsZSAoY2luID4+IG4pIHsKCgoJCWZvciAoaSA9IG4sIGogPSBXIC0gMTsgaiA+PSAwOyBqLS0pCgkJCWlmIChwdHJbaV1bal0gIT0gMCkgICAvLyDnlLHlpKfogIzlsI/ntIDpjITnrKzkuIDlgIvkuI3ngrowICBq55qE5L2N572uCgkJCQlicmVhazsKCQljb3V0IDw8IHB0cltpXVtqXTsgICAgIC8v5YWI5Y2w5Ye656ys5LiA6aCF5LiN55So6KOc6Zu2ISEKCQlmb3IgKGo9ai0xOyBqID49IDA7IGotLSkgewoJCSAgY291dCA8PCBzZXR3KDE4KSA8PCBzZXRmaWxsKCcwJykgPDwgcHRyW2ldW2pdOy8v56ys5LqM6aCF5b6M5Zyo5pW45a2X5YmN6Z2i6KOc6Zu2ISEhCgkJfQoJCWNvdXQgPDwgZW5kbDsKCX0KCWRlbGV0ZVtdIHB0cjsgIC8v6Zmj5YiX55So5a6M6KiY5oa26auU6KiY5b6X6KaB6YeL5pS+ISEKCXJldHVybiAwOwp9