n = int(input()) A = list(map(int, input().split())) inf = 1 << 30 B = [inf] * (n+1) from bisect import bisect B[0] = 0 Ans = [[inf, inf] for _ in range(n+1)] for i in range(n): a = A[i] idx = bisect(B, a) Ans[idx-1][0] = min(Ans[idx-1][0], i+1) Ans[idx-1][1] = min(Ans[idx-1][1], a) B[idx] = a for x, y in Ans: if x == inf: break print(x, y)