#include using namespace std; int dp[300005]; int main() { ios::sync_with_stdio(false); cin.tie(0); int N; cin >> N; memset(dp, 0x3f, sizeof(dp)); dp[0] = 0; for (int j = 1; j * j <= N; j++) { int w = j * j; for (int i = w; i <= N; i++) { dp[i] = min(dp[i], dp[i - w] + j); } } int rem = N; string ans = ""; char cur = '0'; while (rem > 0) { int bj = -1; for (int j = 1; j * j <= rem; j++) { if (dp[rem - j * j] + j == dp[rem]) { if (j % 2 == 1) { bj = j; break; } else { if (bj == -1) bj = j; } } } for (int k = 0; k < bj; k++) { ans += cur; cur = (cur == '0' ? '1' : '0'); } if (bj > 0) { cur = ans.back(); } rem -= bj * bj; } cout << ans << "\n"; return 0; }