#include using namespace std; int dp[300005]; int main() { ios::sync_with_stdio(false); cin.tie(0); int N; cin >> N; const int INF = 1e9; for (int i = 0; i <= N; i++) dp[i] = INF; dp[0] = 0; for (int j = 1; j * j <= N; j++) { int w = j * j; for (int i = w; i <= N; i++) { if (dp[i - w] + j < dp[i]) dp[i] = dp[i - w] + j; } } int rem = N; char c = '0'; string ans = ""; while (rem > 0) { int L = -1; if (c == '0') { for (int j = 1; j * j <= rem; j += 2) { if (dp[rem - j * j] == dp[rem] - j) { L = j; break; } } if (L == -1) { int mx = sqrt(rem) + 1; while (mx * mx > rem) mx--; for (int j = mx; j >= 2; j--) { if (j % 2 == 0 && dp[rem - j * j] == dp[rem] - j) { L = j; break; } } } } else { for (int j = 2; j * j <= rem; j += 2) { if (dp[rem - j * j] == dp[rem] - j) { L = j; break; } } if (L == -1) { int mx = sqrt(rem) + 1; while (mx * mx > rem) mx--; for (int j = mx; j >= 1; j--) { if (j % 2 == 1 && dp[rem - j * j] == dp[rem] - j) { L = j; break; } } } } char cur = c; for (int i = 0; i < L; i++) { ans += cur; cur = (cur == '0') ? '1' : '0'; } if (L % 2 == 0) { c = (c == '0') ? '1' : '0'; } rem -= L * L; } cout << ans << "\n"; return 0; }