#include using namespace std; string a[50]; int al[50] = {0}; int dva(vector a){ int carry = 0; int b = 2; int n = 0; while(carry == 0){ for (int i=(int)a.size()-1; i>=0; --i) { long long cur = a[i] + carry * 1ll * 10; a[i] = int (cur / b); carry = int (cur % b); } if(carry == 0) n++; while (a.size() > 1 && a.back() == 0) a.pop_back(); } return n; } int main(){ int rrr; cin >> rrr; a[1] = "2"; al[1] = 1; for(int i = 2; i <= 42; i++){ if(al[i - 1] == i - 1){ a[i] = "1" + a[i - 1]; vector x; for(int j = a[i].length() - 1; j > -1; j--) x.push_back(a[i][j] - 48); al[i] = dva(x); } else { a[i] = "2" + a[i - 1]; vector x; for(int j = a[i].length() - 1; j > -1; j--) x.push_back(a[i][j] - 48); al[i] = dva(x); } } cout << a[rrr]; return 0; }