Let's define the sum of two permutations *p* and *q* of numbers 0, 1, ..., (*n* - 1) as permutation <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/a6967136eb87d05a01f795f6061b884a1a9f4f4b.png" style="max-width: 100.0%;max-height: 100.0%;"/>, where *Perm*(*x*) is the *x*-th lexicographically permutation of numbers 0, 1, ..., (*n* - 1) (counting from zero), and *Ord*(*p*) is the number of permutation *p* in the lexicographical order.

For example, *Perm*(0) = (0, 1, ..., *n* - 2, *n* - 1), *Perm*(*n*! - 1) = (*n* - 1, *n* - 2, ..., 1, 0)

Misha has two permutations, *p* and *q*. Your task is to find their sum.

Permutation *a* = (*a*<sub class="lower-index">0</sub>, *a*<sub class="lower-index">1</sub>, ..., *a*<sub class="lower-index">*n* - 1</sub>) is called to be lexicographically smaller than permutation *b* = (*b*<sub class="lower-index">0</sub>, *b*<sub class="lower-index">1</sub>, ..., *b*<sub class="lower-index">*n* - 1</sub>), if for some *k* following conditions hold: *a*<sub class="lower-index">0</sub> = *b*<sub class="lower-index">0</sub>, *a*<sub class="lower-index">1</sub> = *b*<sub class="lower-index">1</sub>, ..., *a*<sub class="lower-index">*k* - 1</sub> = *b*<sub class="lower-index">*k* - 1</sub>, *a*<sub class="lower-index">*k*</sub> &lt; *b*<sub class="lower-index">*k*</sub>.
The first line contains an integer *n* (1 ≤ *n* ≤ 200 000).

The second line contains *n* distinct integers from 0 to *n* - 1, separated by a space, forming permutation *p*.

The third line contains *n* distinct integers from 0 to *n* - 1, separated by spaces, forming permutation *q*.
"""
Codeforces Contest 285 Div 1 Problem B

Author  : chaotic_iak
Language: Python 3.4.2
"""

################################################### SOLUTION

def index_of_perm(p):
    mx = 18
    fenwick = [[0]*(2**i) for i in range(mx+1)]
    base_fact = [0]*len(p)
    for i in range(len(p)):
        i = -i-1
        v = p[i]
        ct = 0
        for k in range(mx,-1,-1):
            fenwick[k][v] += 1
            v,m = v//2, v%2
            if k and m: ct += fenwick[k-1][v] - fenwick[k][2*v+m] + 1
        base_fact[i] = ct
    return base_fact


def perm_of_index(p):
    mx = 2
    fenwick = [[0]*(2**i) for i in range(mx+1)]
    for i in range(len(p)): fenwick[mx][i] = 1
    for k in range(mx-1,-1,-1):
        for i in range(2**k):
            fenwick[k][i] = fenwick[k+1][2*i] + fenwick[k+1][2*i+1]
    perm = [0]*len(p)
    for i in range(len(p)):
        ct = p[i]
        idx = 0
        for k in range(mx+1):
            if fenwick[k][idx] <= ct:
                ct -= fenwick[k][idx]
                idx += 1
            fenwick[k][idx] -= 1
            idx *= 2
        perm[i] = idx//2
    return perm


def main():
    n, = read()
    p = read()
    q = read()
    idxp = index_of_perm(p)
    idxq = index_of_perm(q)
    idxr = [idxp[i]+idxq[i] for i in range(n)]
    for i in range(-1,-n-1,-1):
        if idxr[i] >= -i:
            if i > -n: idxr[i-1] += 1
            idxr[i] %= -i
    write(perm_of_index(idxr))



#################################################### HELPERS



def read(mode=2):
    # 0: String
    # 1: List of strings
    # 2: List of integers
    inputs = input().strip()
    if mode == 0: return inputs
    if mode == 1: return inputs.split()
    if mode == 2: return list(map(int, inputs.split()))

def write(s="\n"):
    if s is None: s = ""
    if isinstance(s, list): s = " ".join(map(str, s))
    s = str(s)
    print(s, end="")

write(main())