#include #include #include using namespace std; int N; vectorA[2]; int dp[3<<17]; int L[3<<17],R[3<<17]; main() { cin>>N; dp[0]=0; for(int i=1;i<=N;i++) { dp[i]=1e9; L[i]=-1; R[i]=-1; } for(int i=0;idp[i]+j) { dp[i+j*j]=dp[i]+j; L[i+j*j]=R[i+j*j]=j; } else if(dp[i+j*j]==dp[i]+j) { int u=i+j*j; if(L[u]%2!=j%2) { if(j%2)L[u]=j; } else { if(j%2)L[u]=min(L[u],j); else L[u]=max(L[u],j); } if(R[u]%2!=j%2) { if(j%2==0)R[u]=j; } else { if(j%2)R[u]=max(R[u],j); else R[u]=min(R[u],j); } } } } char c='0'; while(N) { int id; if(c=='0')id=L[N]; else id=R[N]; N-=id*id; cout<