output_description: The output consists of two lines. The first line contains a_1, a_2, ..., a_N
  seperated by a space. The second line contains b_1, b_2, ..., b_N seperated by
  a space.
  
  It can be shown that there always exists a solution for any input satisfying
  the constraints.
  
  * * *
input_description: The input is given from Standard Input in the following format:
  
      
      
      N
      p_1 p_2 ... p_N
attempt: # -*- coding: utf-8 -*-
  import bisect
  import heapq
  import math
  import random
  import sys
  from collections import Counter, defaultdict, deque
  from decimal import ROUND_CEILING, ROUND_HALF_UP, Decimal
  from functools import lru_cache, reduce
  from itertools import combinations, combinations_with_replacement, product, permutations
  from operator import add, mul, sub
  
  sys.setrecursionlimit(10000)
  
  
  def read_int():
      return int(input())
  
  
  def read_int_n():
      return list(map(int, input().split()))
  
  
  def read_float():
      return float(input())
  
  
  def read_float_n():
      return list(map(float, input().split()))
  
  
  def read_str():
      return input().strip()
  
  
  def read_str_n():
      return list(map(str, input().split()))
  
  
  def error_print(*args):
      print(*args, file=sys.stderr)
  
  
  def mt(f):
      import time
  
      def wrap(*args, **kwargs):
          s = time.time()
          ret = f(*args, **kwargs)
          e = time.time()
  
          error_print(e - s, "sec")
          return ret
  
      return wrap
  
  
  @mt
  def slv(N, P):
      M = 30000
      a = []
      b = []
      for i in range(1, N + 1):
          a.append(i * M + 1)
          b.append((N - i + 1) * M + 1)
      for i, p in enumerate(P):
          a[p - 1] += i
  
      return "\n".join([" ".join(map(str, a)), " ".join(map(str, b))])
  
  
  def main():
      N = read_int()
      P = read_int_n()
      print(slv(N, P))
  
  
  if __name__ == "__main__":
      main()
  
problem_description: Statement
  
  You are given a permutation p of the set {1, 2, ..., N}. Please construct two
  sequences of positive integers a_1, a_2, ..., a_N and b_1, b_2, ..., b_N
  satisfying the following conditions:
  
    * 1 \leq a_i, b_i \leq 10^9 for all i
    * a_1 < a_2 < ... < a_N
    * b_1 > b_2 > ... > b_N
    * a_{p_1}+b_{p_1} < a_{p_2}+b_{p_2} < ... < a_{p_N}+b_{p_N}
samples: [{"input": "2\n    1 2", "output": "1 4\n    5 4\n    \n\na_1 + b_1 = 6 and a_2 + b_2 = 8. So this output satisfies all conditions.\n\n* * *"}, {"input": "3\n    3 2 1", "output": "1 2 3\n    5 3 1\n    \n\n* * *"}, {"input": "3\n    2 3 1", "output": "5 10 100\n    100 10 1"}]