import sys

MAXN = 1000001
arr = [0] * MAXN
stack = [0] * MAXN
ans = [[-1, -1] for _ in range(MAXN)]

def compute(n, arr, stack, ans):
    r = 0
    for i in range(n):
        while r > 0 and arr[stack[r - 1]] >= arr[i]:
            cur = stack[r - 1]
            r -= 1
            ans[cur][0] = stack[r - 1] if r > 0 else -1
            ans[cur][1] = i
        stack[r] = i
        r += 1

    while r > 0:
        cur = stack[r - 1]
        r -= 1
        ans[cur][0] = stack[r - 1] if r > 0 else -1
        ans[cur][1] = -1

    for i in range(n - 2, -1, -1):
        if ans[i][1] != -1 and arr[ans[i][1]] == arr[i]:
            ans[i][1] = ans[ans[i][1]][1]

def main():
    input_buffer = sys.stdin.read().splitlines()
    output_buffer = []

    line_index = 0
    while line_index < len(input_buffer):
        n = int(input_buffer[line_index])
        line_index += 1
        values = list(map(int, input_buffer[line_index].strip().split()))
        line_index += 1

        arr[:n] = values

        compute(n, arr, stack, ans)
        output_buffer.extend(f"{ans[i][0]} {ans[i][1]}" for i in range(n))

    sys.stdout.write('\n'.join(output_buffer))

if __name__ == "__main__":
    main()