#include #define REP(i,n) for (int i=0;i<(n);i++) #define FOR(i,a,b) for (int i=(a);i<(b);i++) #define dump1d_arr(array,i) cerr << #array << "[" << (i) << "] ==> " << (array[i]) << endl; #define dump2d_arr(array,i,j) cerr << #array << "[" << (i) << "]" << "[" << (j) << "] ==> " << (array[i][j]) << endl; #define dump(x) cerr << #x << " => " << (x) << endl; #define CLR(vec) { REP(i,vec.size()) vec[i] = 0; } #define MIN(a, b) ((a) < (b) ? (a) : (b)) #define MAX(a, b) ((a) > (b) ? (a) : (b)) using namespace std; typedef long long LL; typedef vector VLL; int main(void){ short N; cin >> N; VLL dp(N+1,0); dp[0] = 1; dp[1] = 1; FOR(i,2,N+1){ dp[i] = dp[i-1] + dp[i-2]; } cout << dp[N] << endl; return 0; }