#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { int n; cin >> n; vector > > dp(1, vector >(2, vector(3, 0))); dp[0][1][1] = 1; for(;;){ vector > nextDp(2, vector(3, 0)); for(int i=0; i<2; ++i){ for(int j=0; j<3; ++j){ nextDp[0][j] += dp.back()[i][j]; nextDp[1][(j+1)%3] += dp.back()[i][j]; } } dp.push_back(nextDp); int tmp = nextDp[0][0] + nextDp[1][0]; if(tmp < n) n -= tmp; else break; } int a = 0; for(int i=dp.size()-1; i>=0; --i){ if(n <= dp[i][0][a]){ cout << 3; } else{ cout << 5; n -= dp[i][0][a]; a = (a + 2) % 3; } } cout << endl; return 0; }