output_description: Print the N-th Lucas number.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
attempt: #include <bits/stdc++.h>
  using namespace std;
  typedef long long ll;
  typedef long double ld;
  typedef unsigned long long int ulli;
  typedef long long int lli;
  #define pb(a) push_back(a)
  #define pbb(a) pop_back(a)  
  #define ph(a) push_heap(a.begin(), a.end())
  #define pph(a) pop_heap(a.begin(), a.end())
  #define si set<int>
  #define sl set<long>
  #define sc set<char>
  #define pii pair<int, int>
  #define pll pair<long, long>
  #define pdd pair<double, double>
  #define TC(t) while(t--)
  #define FORA(a,b,c) for ((a) == (b); (a) < (c); (a) ++)
  #define FORB(a,b,c) for ((a) == (b); (a) <= (c); (a) ++)
  #define FORC(a,b) for ((a) == (b); (a) > 0; (a)--)
  #define FORD(a,b) for ((a) == (b); (a) >= 0; (a)--)                         
  #define WM(a) while(a--)
  #define WP(a) while(a++)
  #define print(data) cout << data << endl
  #define tin(a) cin >> a
  #define ttin(a,b) cin >> a >> b
  #define tttin(a,b,c) cin >> a >> b >> c
  #define maxheap(a) make_heap(a.begin(),a.end())
  #define fixp(a)  cout << fixed << setprecision(a);
  #define RM(a,n) a.erase(remopricee(a.begin(), a.end(), n),a.end())
  #define MOD 1000000007
  ll prime[] = {2 , 3 , 5 , 7 , 11 , 13 , 17 , 19 , 23 , 29 , 31 , 37 , 41 , 43 , 47};
  inline int gmx (int a, int b){
  	return a > b ? a : b;
  }
  inline int gmm (int a, int b){
  	return a < b ? a : b;
  }
  inline ll get_gcd(ll a, ll b){
      ll rem = 0;
      while( b != 0){
          rem = a % b;
          a = b; 
          b = rem;
      }
      return a;   
  }
  ll fastexp (ll base, ll exp){
  	ll res = 1;
  	if (exp == 0) return 1LL;
  	while(exp){
  		if(exp&1) res = (res*base)%MOD;
  		res = (res+MOD)%MOD;
  		base = (base*base)%MOD;
  		base = (base+MOD)%MOD;
  		exp >>= 1;
  	}
  	return (ll)res;
  }
  struct compare {
      bool operator()(const std::string& first, const std::string& second) {
          return first.size() < second.size();
      }
  };
  void Verdict_Check(){
  	ifstream A("my_output.txt");
  	ifstream B("code_output.txt");
  	
  	int c1=0,c2=0;
  	bool WA = false;
  	string str;
  	while(getline(A,str)){
  		c1++;
  	}
  	while(getline(B,str)){
  		c2++;
  	}
  	A.close();
  	B.close();
  	ifstream AA("my_output.txt");
  	ifstream BB("code_output.txt");
  	if (c1 != c2){
  		WA = true;
  	}else{
  		string s,ss;
  		while(getline(AA,s) && getline(BB,ss)){
  			if(s != ss){
  				WA = true;
  			}
  		}
  	}
  	if (WA){
  		cout << "Wrong answer!!!" << endl;
  	}else{
  		cout << "All test cases are passed!!!" << endl;
  	}
  	AA.close();
  	BB.close();
  }
  int N;
  ll a[86+5];
  int main(){
  	int A[10000];
  	//freopen("a.in","r",stdin);
  	//freopen("my_output.txt","a", stdout);
  	clock_t tStart = clock();
  	scanf("%d",&N);
  	a[0] = 2LL;a[1] = 1LL;
  	for (int i = 2; i <= N; i ++)a[i] = a[i-1] + a[i-2];
  	printf("%lld\n",a[N]);
  	//freopen("CON", "w", stdout);
  	//Verdict_Check();
  	// printf("Time taken: %.7fs\n", (double)(clock() - tStart)/CLOCKS_PER_SEC);
  	return 0;
  }
problem_description: Statement
  
  It is November 18 now in Japan. By the way, 11 and 18 are adjacent Lucas
  numbers.
  
  You are given an integer N. Find the N-th Lucas number.
  
  Here, the i-th Lucas number L_i is defined as follows:
  
    * L_0=2
    * L_1=1
    * L_i=L_{i-1}+L_{i-2} (i≥2)
samples: [{"input": "5", "output": "11\n    \n\n  * L_0=2\n  * L_1=1\n  * L_2=L_0+L_1=3\n  * L_3=L_1+L_2=4\n  * L_4=L_2+L_3=7\n  * L_5=L_3+L_4=11\n\nThus, the 5-th Lucas number is 11.\n\n* * *"}, {"input": "86", "output": "939587134549734843"}]