# 1부터 n까지의 수를 스택에 넣었다가 뽑아 늘어놓음으로써 하나의 수열을 만들 수 있다
# 이때, 스택에 push하는 순서는 반드시 오름차순을 지키도록 한다고 하자.
# 임의의 수열이 주어졌을 때 스택을 이용해 그 수열을 만들 수 있는지 없는지
# , 있다면 어떤 순서로 push와 pop 연산을 수행해야 하는지를 알아낼 수 있다. 
# 이를 계산하는 프로그램을 작성하라.
import sys

Num = []
stack = []
result = []

N = int(input())

for i in range(N):
    Num.append(int(sys.stdin.readline()))
def numeric():
    cnt = 1
    for x in Num:
        while(cnt <= x):
            result.append('+')
            stack.append(cnt)
            cnt += 1

        if x == stack[-1]:
            stack.pop()
            result.append('-')

        else:
            return "NO"

    return ('\n'.join(result))

print(numeric())
