#include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair P; typedef pair P3; typedef pair PP; constexpr ll MOD = ll(1e9 + 7); constexpr int IINF = INT_MAX; constexpr ll LLINF = LLONG_MAX; constexpr int MAX_N = int(1e5) + 5; constexpr double EPS = 1e-9; constexpr int di[] = {0, 1, 0, -1}, dj[] = {1, 0, -1, 0}; #define REP(i, n) for (int i = 0; i < n; i++) #define REPR(i, n) for (int i = n; i >= 0; i--) #define SORT(v) sort((v).begin(), (v).end()) #define SORTR(v) sort((v).rbegin(), (v).rend()) #define ALL(v) (v).begin(), (v).end() int main() { ll n; cin >> n; vector dp(n+1, IINF), pre(n+1); dp[0] = 0; for(int i=0;i dp[i] + j){ dp[i+j*j] = dp[i]+j; pre[i+j*j] = j; } } } vector len, ev, od; for(int i=n; i>0; i-=pre[i]*pre[i]){ if(pre[i]%2){ od.push_back(pre[i]); } else{ ev.push_back(pre[i]); } } sort(od.begin(), od.end()); sort(ev.rbegin(), ev.rend()); for(auto l : od) len.push_back(l); for(auto l : ev) len.push_back(l); string ans = ""; int b = 0; for(auto l : len){ for(int i=0;i