## https://yukicoder.me/problems/no/806 from collections import deque def main(): N = int(input()) prev = {N: -1} queue = deque() queue.append(N) while len(queue) > 0: w = queue.popleft() if w % 2 == 0: x = w // 2 if x not in prev: prev[x] = (w, "/") queue.append(x) if x == 1: break else: # + x = 3 * w + 1 if x <= 10 ** 18: if x not in prev: prev[x] = (w, "+") queue.append(x) if x == 1: break # - x = 3 * w - 1 if x <= 10 ** 18: if x not in prev: prev[x] = (w, "-") queue.append(x) if x == 1: break answer = [] x = 1 while x != N: x, y = prev[x] answer.append(y) answer.reverse() print(len(answer)) print("".join(answer)) if __name__ == "__main__": main()