import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Deque;
import java.util.LinkedList;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        int n = Integer.parseInt(br.readLine());
        int[] move = new int[n + 1]; // 풍선 번호 별로 적혀있는 숫자

        // 풍선 저장
        Deque<Integer> que = new LinkedList<>(); // 풍선의 인덱스 저장, 1 ~ N
        String[] inputs = br.readLine().split(" ");
        for (int i = 0; i < n; i++) {
            int val = Integer.parseInt(inputs[i]);
            move[i + 1] = val;
            que.offer(i + 1);
        }

        // 가장 앞에 위치한 풍선을 하나씩 꺼내어,
        // 풍선에 적혀있는 숫자(move)만큼 left 또는 right로 회전한다.
        StringBuilder sb = new StringBuilder();
        while (que.size() > 1) {
            int idx = que.poll();
            sb.append(idx).append(" ");

            if (move[idx] > 0) {
                iterator(que, true, move[idx] - 1);
            } else {
                iterator(que, false, Math.abs(move[idx]));
            }
        }

        sb.append(que.poll());
        System.out.println(sb);
    }

    static void iterator(Deque<Integer> que, boolean isLeftIterator, int iteratorCount) {
        // 왼쪽으로 회전
        if (isLeftIterator) {
            for (int i = 0; i < iteratorCount; i++) {
                que.offer(que.poll());
            }
        } else { // 오른쪽으로 회전
            for (int i = 0; i < iteratorCount; i++) {
                que.offerFirst(que.pollLast());
            }
        }
    }
}