

from bisect import bisect_left, bisect_right

N = int(eval(input()))

A = list(map(int, input().split()))

B = list(map(int, input().split()))

C = list(map(int, input().split()))



A.sort()

C.sort()





ans = 0

#Bの中の数iに対して、Aの中でiより小さい数の個数と、Cの中でiより大きい数の個数の積を探索

for i in B:

    ans += bisect_right(A, i-0.1) * (N-bisect_left(C, i+0.1))

print (ans)

import bisect

N = int(eval(input()))



A = list(map(int, input().split()))

B = list(map(int, input().split()))

C = list(map(int, input().split()))



A.sort()

B.sort()

C.sort()



# print (A, B ,C)

ans = 0

for i in B:

    # print (i)

    # print (bisect.bisect_left(A, i-0.1))

    ans += bisect.bisect_left(A, i-0.1) * (N-bisect.bisect_right(C, i+0.1))

print (ans)
from bisect import bisect_left, bisect_right

N = int(eval(input()))
A = list(map(int, input().split()))
B = list(map(int, input().split()))
C = list(map(int, input().split()))
A.sort()
C.sort()
ans = 0
# Bの中の数iに対して、Aの中でiより小さい数の個数と、Cの中でiより大きい数の個数の積を探索
for i in B:
    ans += bisect_right(A, i - 0.1) * (N - bisect_left(C, i + 0.1))
print(ans)

import bisect

N = int(eval(input()))
A = list(map(int, input().split()))
B = list(map(int, input().split()))
C = list(map(int, input().split()))
A.sort()
B.sort()
C.sort()
# print (A, B ,C)
ans = 0
for i in B:
    # print (i)
    # print (bisect.bisect_left(A, i-0.1))
    ans += bisect.bisect_left(A, i - 0.1) * (N - bisect.bisect_right(C, i + 0.1))
print(ans)

-from bisect import bisect_left, bisect_right +import bisect +B.sort() +# print (A, B ,C) -# Bの中の数iに対して、Aの中でiより小さい数の個数と、Cの中でiより大きい数の個数の積を探索 -    ans += bisect_right(A, i - 0.1) * (N - bisect_left(C, i + 0.1)) +    # print (i) +    # print (bisect.bisect_left(A, i-0.1)) +    ans += bisect.bisect_left(A, i - 0.1) * (N - bisect.bisect_right(C, i + 0.1))