## https://yukicoder.me/problems/no/2038 def check(answer): for i in range(len(answer) - 1): if answer[i] == answer[i + 1]: print("NG") return for i in range(len(answer)): for j in range(i + 1, len(answer)): if answer[i] == answer[j] and (i + 1) + (j + 1) <= len(answer): if answer[i] >= answer[i + j + 1]: print("NG") return for i in range(len(answer)): if not (1 <= int(answer[i]) <= 9): print("NG") return print("OK") def main(): N = int(input()) k = 0 while 1 << k <= N: k += 1 array = [-1] * (N + 1) max_k = k for k in reversed(range(max_k)): x = (1 << k) while x <= N: if array[x] == -1: array[x] = k + 1 x += (1 << k) answer = array[1:] print("".join(map(str, answer))) if __name__ == "__main__": main()