from collections import deque def inpl(): return list(map(int, input().split())) N = int(input()) DP = [10**9]*(N+1) DP[0] = 0 F = [i**2 for i in range(1, 550)] E = [] O = [] for i in range(N): for j, f in enumerate(F, start=1): if i + f > N: break DP[i+f] = min(DP[i+f], DP[i]+j) x = N while x: for j, f in enumerate(F, start=1): if DP[x] == DP[x-f] + j: if j%2: O.append(j) else: E.append(j) x -= f break O = sorted(O) E = deque(sorted(E)) ans = [] for o in O: ans.append("01"*(o//2) + "0") while E: e = E.pop() ans.append("01"*(e//2)) if E: e = E.popleft() ans.append("10"*(e//2)) print("".join(ans))