#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() 
{
    int i=0;
    int j=0;
    int n=0;
    cin>>n;
    if(n==1)
    {
        cout<<"1";
        return 0;
    }
    if(n==2)
    {
        cout<<"2";
    }
    else 
    {
        vector <string> a;
        a.push_back("1");
        a.push_back("2");
        for(i=2;i<n;i++)
        {
            string c;
            int len1=a[i-1].size();
            int len2=a[i-2].size();
            int len=max(len1,len2);
            if(len1<len)
            {
                reverse(a[i-1].begin(),a[i-1].end());
                for(j=len1;j<len;j++)
                {
                    a[i-1]+='0';
                }
                reverse(a[i-1].begin(),a[i-1].end());
            }
            else 
            {
                if(len2<len)
                {
                    reverse(a[i-2].begin(),a[i-2].end());
                    for(j=len2;j<len;j++)
                    {
                        a[i-2]+='0';
                    }
                    reverse(a[i-2].begin(),a[i-2].end());
                }
            }
            int count=0;
            for(j=len-1;j>=0;j--)
            {
                int m=a[i-1][j]-'0'+a[i-2][j]-'0'+count;
                if(m>=10)
                {
                    count=1;
                }
                else 
                {
                    count=0;
                }
                c+=m%10+'0';
            }
            if(count)
            {
                c+='1';
            }
            reverse(c.begin(),c.end());
            a.push_back(c);
        }
        cout<<a[n-1];
    }  
    return 0;
}