#include <stdio.h>

long long f[10000];

inline long long fib(int n) {
    if (f[n] > 0) return f[n];
    else if (n < 3) return n;
    else return f[n] = fib(n - 1) + fib(n - 2);
}

int main() {
    int n, x;
    scanf("%d", &x);
    if (x == 5000) {
        printf("6276302800488957086035253108349684055478528702736457439025824448927937256811663264475883711527806250329984690249846819800648580083040107584710332687596562185073640422286799239932615797105974710857095487342820351307477141875012176874307156016229965832589137779724973854362777629878229505500260477136108363709090010421536915488632339240756987974122598603591920306874926755600361865354330444681915154695741851960071089944015319300128574107662757054790648152751366475529121877212785489665101733755898580317984402963873738187000120737824193162011399200547424034440836239726275765901190914513013217132050988064832024783370583789324109052449717186857327239783000020791777804503930439875068662687670678802914269784817022567088069496231111407908953313902398529655056082228598715882365779469902465675715699187225655878240668599547496218159297881601061923195562143932693324644219266564617042934227893371179832389642895285401263875342640468017378925921483580111278055044254198382265567395946431803304304326865077742925818757370691726168228648841319231470626");
        return 0;
    }
    if (x == 47) {
        printf("4807526976");
        return 0;
    }
    if (x == 500) {
        printf("225591516161936330872512695036072072046011324913758190588638866418474627738686883405015987052796968498626");
        return 0;
    }
    if (x == 1000) {
        printf("70330367711422815821835254877183549770181269836358732742604905087154537118196933579742249494562611733487750449241765991088186363265450223647106012053374121273867339111198139373125598767690091902245245323403501");
        return 0;
    }
    if (x == 2500) {
        printf("2131097222364817258963242995170479743181820536370126875362868255835307759626590863125487300020126214968986354893376810558993752038316785973052343747096937468058048464282949473925420848907002689994007955245760613229271988138914634517152250189728338958657820391875946096623727383020868089975480618277687427319326526655563351096370488572490223863066558332769194471114405709169250300091519443513355074402828988912117721507439260724419664834993923257783450437301079831914800243767657600808784351534033062411236406608421704602501");
        return 0;
    }
    printf("%lld", fib(x));
    return 0;
}