class Node: def __init__(self, i, a): self.left = None self.right = None self.i = i self.a = a def insert(self, i, a): if a < self.a: if self.left is not None: self.left.insert(i, a) else: self.left = Node(i, a) else: if self.right is not None: self.right.insert(i, a) else: self.right = Node(i, a) def out(self, ans, d=0): i = self.i c = 0 if self.left is not None: c += self.left.out(ans, d+1) if self.right is not None: c += self.right.out(ans, d+1) ans[i] = (d, c) return c + 1 N = int(input()) A = list(map(int, input().split())) root = Node(0, A[0]) for i, a in enumerate(A): if not i: continue root.insert(i, a) ans = [None]*N root.out(ans) b, c = zip(*ans) print(*b) print(*c)