// ROOT : DRAGON3012009
#include <bits/stdc++.h>
#define ll int
#define el "\n"
#define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define __ROOT__ int main()
#pragma GCC optimize("O2")
#define fi first
#define se second
#define MAXN 3001
#define INF 1000000000000
#define BLOCK_SIZE 425
#define MAX_NODE 1001001
#define LOG 19
#define ALPHA_SIZE 26
#define BASE 311
#define NAME "check"
#define compare(v) sort((v).begin(), (v).end()); (v).erase(unique((v).begin(), (v).end()), (v).end()); // dùng Äá» nén sort mảng compare
using namespace std;
const ll MOD[] = {(ll)1e9 + 2277, (ll)1e9 + 5277, (ll)1e9 + 8277, (ll)1e9 + 9277, (ll) 1e9 + 7 };
const ll NMOD = 1;
const int dx[] = {-1, 0, 1,0};
const int dy[] = {0, 1, 0, -1};
//**Variable**//
string dp[MAXN][4][2] ; // ngay - vangmat - dimuon
//**Struct**//
//**Function**//
string add(string a , string b ) {
while(a.size() < b.size()) a = "0" + a ;
while(b.size() < a.size()) b = "0" + b ;
ll nho =0;
string res;
for(ll i = a.size() - 1; i >= 0 ; i -- ) {
ll tong = nho + a[i]- '0' + b[i]-'0' ;
nho = tong /10 ;
res = to_string(tong % 10 ) + res ;
}
if(nho) res = "1" + res ;
return res ;
}
string DP(ll pos , ll cnt , ll ok ) {
string &cur = dp[pos][cnt][ok] ;
if(pos == 0){
return cur = "1" ;
}
if(cur != "-1" ) return cur ;
cur = "0" ;
if(cnt < 2) cur =add(cur, DP(pos -1 , cnt + 1 , ok ) ) ;// nghỉ
if(!ok ) cur =add(cur, DP(pos -1 , 0 , 1 )) ; // vắng
cur =add(cur , DP(pos- 1 , 0 , ok ) ) ; //đi học
return cur ;
}
void init() {
for(ll i = 0 ; i < MAXN ; i ++ ) {
for(ll j = 0 ; j < 4 ; j ++ ) {
for(ll f = 0 ; f < 2 ; f ++ ) dp[i][j][f] = "-1" ;
}
}
}
void solve() {
ll n ;
while(cin >> n ){
cout<< DP(n , 0 , 0) << el ;
}
}
__ROOT__ {
// freopen(NAME".inp" , "r" , stdin);
// freopen(NAME".out" , "w", stdout) ;
fast;
init();
solve();
}
Ly8gUk9PVCA6IERSQUdPTjMwMTIwMDkKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgaW50CiNkZWZpbmUgZWwgIlxuIgojZGVmaW5lIGZhc3QgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiNkZWZpbmUgX19ST09UX18gaW50IG1haW4oKQojcHJhZ21hIEdDQyBvcHRpbWl6ZSgiTzIiKQojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgTUFYTiAzMDAxCiNkZWZpbmUgSU5GIDEwMDAwMDAwMDAwMDAKI2RlZmluZSBCTE9DS19TSVpFIDQyNQojZGVmaW5lIE1BWF9OT0RFIDEwMDEwMDEKI2RlZmluZSBMT0cgMTkKI2RlZmluZSBBTFBIQV9TSVpFIDI2CiNkZWZpbmUgQkFTRSAzMTEKI2RlZmluZSBOQU1FICJjaGVjayIKI2RlZmluZSBjb21wYXJlKHYpIHNvcnQoKHYpLmJlZ2luKCksICh2KS5lbmQoKSk7ICh2KS5lcmFzZSh1bmlxdWUoKHYpLmJlZ2luKCksICh2KS5lbmQoKSksICh2KS5lbmQoKSk7IC8vIGTDg8K5bmcgw4TCkcOhwrvCgyBuw4PCqW4gc29ydCBtw6HCusKjbmcgY29tcGFyZQp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBsbCBNT0RbXSA9IHsobGwpMWU5ICsgMjI3NywgKGxsKTFlOSArIDUyNzcsIChsbCkxZTkgKyA4Mjc3LCAobGwpMWU5ICsgOTI3NywgKGxsKSAxZTkgKyA3IH07CmNvbnN0IGxsIE5NT0QgPSAxOwpjb25zdCBpbnQgZHhbXSA9IHstMSwgMCwgMSwwfTsKY29uc3QgaW50IGR5W10gPSB7MCwgMSwgMCwgLTF9OwovLyoqVmFyaWFibGUqKi8vCnN0cmluZyBkcFtNQVhOXVs0XVsyXSA7IC8vIG5nYXkgLSB2YW5nbWF0IC0gZGltdW9uCi8vKipTdHJ1Y3QqKi8vCgovLyoqRnVuY3Rpb24qKi8vCnN0cmluZyBhZGQoc3RyaW5nIGEgICwgc3RyaW5nIGIgKSB7CndoaWxlKGEuc2l6ZSgpIDwgYi5zaXplKCkpIGEgPSAiMCIgKyBhIDsKd2hpbGUoYi5zaXplKCkgPCBhLnNpemUoKSkgYiA9ICIwIiArIGIgOwpsbCBuaG8gPTA7CnN0cmluZyByZXM7CmZvcihsbCBpID0gYS5zaXplKCkgLSAxOyAgaSA+PSAwIDsgaSAtLSApIHsKICAgIGxsIHRvbmcgPSBuaG8gKyBhW2ldLSAnMCcgKyBiW2ldLScwJyA7CiAgICBuaG8gPSB0b25nIC8xMCA7CiAgICByZXMgPSB0b19zdHJpbmcodG9uZyAlIDEwICApICArIHJlcyA7Cn0KaWYobmhvKSByZXMgPSAiMSIgKyByZXMgOwpyZXR1cm4gcmVzIDsKfQpzdHJpbmcgRFAobGwgcG9zICwgbGwgY250ICwgbGwgb2sgKSB7CnN0cmluZyAgJmN1ciA9IGRwW3Bvc11bY250XVtva10gOwppZihwb3MgPT0gMCl7CiAgICByZXR1cm4gY3VyID0gIjEiIDsKfQppZihjdXIgIT0gIi0xIiApIHJldHVybiBjdXIgOwpjdXIgPSAiMCIgOwppZihjbnQgPCAyKSBjdXIgPWFkZChjdXIsIERQKHBvcyAtMSAsIGNudCArIDEgLCBvayApICkgOy8vIG5naOG7iQppZighb2sgKSBjdXIgPWFkZChjdXIsICBEUChwb3MgLTEgLCAwICwgMSApKSA7IC8vIHbhuq9uZwpjdXIgPWFkZChjdXIgLCAgRFAocG9zLSAxICwgMCAsIG9rICkgKSAgOyAvL8SRaSBo4buNYwpyZXR1cm4gY3VyIDsKfQoKdm9pZCBpbml0KCkgewogICBmb3IobGwgaSA9IDAgOyBpIDwgTUFYTiA7IGkgKysgKSB7CiAgICBmb3IobGwgaiA9IDAgOyBqIDwgNCA7IGogKysgKSB7CiAgICAgICAgZm9yKGxsIGYgPSAwIDsgZiA8IDIgOyBmICsrICkgZHBbaV1bal1bZl0gPSAiLTEiIDsKICAgIH0KICAgfQp9Cgp2b2lkIHNvbHZlKCkgewogICAgbGwgbiA7CndoaWxlKGNpbiA+PiBuICl7CmNvdXQ8PCBEUChuICAsIDAgLCAwKSA8PCBlbCAgOwp9Cn0KCl9fUk9PVF9fIHsKLy8gICAgZnJlb3BlbihOQU1FIi5pbnAiICwgInIiICwgc3RkaW4pOwovLyAgICBmcmVvcGVuKE5BTUUiLm91dCIgLCAidyIsIHN0ZG91dCkgOwogICAgZmFzdDsKICAgIGluaXQoKTsKICAgIHNvbHZlKCk7Cn0K