from collections import deque from collections import defaultdict N = int(input()) d = defaultdict(lambda: -1) pre = defaultdict(lambda: -1) seen = defaultdict(lambda: False) s = N q = deque([s]) while q: v = q.popleft() if v == 1: break if v % 2 == 0: next = v//2 if seen[next]: continue q.append(next) pre[next] = v seen[next] = True else: next = 3*v-1 next2 = 3*v+1 if not seen[next]: q.append(next) seen[next] = True pre[next] = v if not seen[next2] and next2 <= 10**18: q.append(next2) seen[next2] = True pre[next2] = v now = 1 ans = [] while now != N: past = pre[now] if past % 2 == 0: ans.append('/') else: if 3*past-1 == now: ans.append('-') else: ans.append('+') now = past print(len(ans)) print(''.join(ans[::-1]))