#pragma GCC optimize("Ofast") #include using namespace std; #define rep(i,n) for(int i = 0; i < (n); ++i) #define rep_S(i,r,n) for(int i = r; i < (n); ++i) #define Sort(a) sort(a.begin(), a.end()) #define RSort(a) sort(a.rbegin(), a.rend()) #define Output(a) cout << a << endl typedef long long int ll; typedef vector vi; typedef vector vll; typedef vector vst; const ll INF = 0x1fffffffffffffff; const ll MOD = 1000000007; template inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; } template inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; } int n, m; vector>> G; vector memo; template vector dijkstra(T x, T e = -1){ vector cost(n, INF); using P = pair; priority_queue, greater<>> q; q.emplace(0, x); while(q.size()){ auto [c, at] = q.top(); q.pop(); if(c > cost[at]) continue; for(auto& [to, t] : G[at]){ if(t == e) continue; if(cost[to] > c + 1){ if(e == -1) memo[t] = 1; cost[to] = c + 1; q.emplace(cost[to], to); } } } return cost; } int main(){ vll t = {0, 0, 1, 1, 2, 3, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11}; ll n; cin >> n; cout << t[n-1]; }