N = int(input())
memory = list(map(int, input().split()))
answer = [0] * N
for i in range(N):
count = 0
for j in range(N):
if answer[j] == 0:
if count == memory[i]:
answer[j] = i + 1
break
count += 1
print(*answer)
N = int(input()) # N 입력 받기
memory = list(map(int, input().split())) # 메모리 정보 입력 받기 (공백으로 분리하여 정수 리스트로 변환)
answer = [0] * N # 결과 리스트 초기화
for i in range(N): # 메모리 정보를 반복하여 result 리스트에 값 채우기 위한 반복문
count = 0 # 현재까지 채워진 값의 개수를 나타내는 변수 초기화
for j in range(N): # result 리스트를 탐색하는 반복문
if answer[j] == 0: # 현재 j번째 위치가 아직 값이 채워지지 않은 경우
if count == memory[i]: # 채워지지 않은 위치의 개수가 memory[i]와 같을 때
answer[j] = i + 1 # 해당 위치에 i+1 값 삽입
break # 현재 메모리 값이 삽입된 후에는 반복문 탈출
count += 1 # 빈 위치를 찾기 위해 현재 채워진 값의 개수 증가
print(*answer)
memory 리스트의 정보를 바탕으로 각 사람의 번호를 answer 리스트에 채워넣는다.