from bisect import bisect_left

from bisect import bisect_right



N = int(eval(input()))



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

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

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

num_a = 0

num_c = 0

res = 0

pre_b = -1





for b in B:

    if b == pre_b:

        res += num_a * num_c

        continue

    num_a = bisect_left(A, b) # a < b となるAの要素数

    pre_num_c = bisect_right(C, b)

    num_c = N - pre_num_c # c > b となるAの要素数

    res += num_a * num_c

    pre_b = b

print(res)



import sys



input = sys.stdin.buffer.readline



import numpy as np



N = int(eval(input()))



A = np.array(input().split(), dtype=np.int32) # 32ビットで9桁の数字を記述できる。今回は10^9までなので、これでOK。

B = np.array(input().split(), dtype=np.int32)

C = np.array(input().split(), dtype=np.int32)



A.sort()

B.sort()

C.sort()



num_a = np.searchsorted(A, B, side="left")

num_c = N - np.searchsorted(C, B, side="right")



res = np.dot(num_a, num_c)



print(res)
from bisect import bisect_left
from bisect import bisect_right

N = int(eval(input()))
A = sorted(list(map(int, input().split())))
B = sorted(list(map(int, input().split())))
C = sorted(list(map(int, input().split())))
num_a = 0
num_c = 0
res = 0
pre_b = -1
for b in B:
    if b == pre_b:
        res += num_a * num_c
        continue
    num_a = bisect_left(A, b)  # a < b となるAの要素数
    pre_num_c = bisect_right(C, b)
    num_c = N - pre_num_c  # c > b となるAの要素数
    res += num_a * num_c
    pre_b = b
print(res)

import sys

input = sys.stdin.buffer.readline
import numpy as np

N = int(eval(input()))
A = np.array(input().split(), dtype=np.int32)  # 32ビットで9桁の数字を記述できる。今回は10^9までなので、これでOK。
B = np.array(input().split(), dtype=np.int32)
C = np.array(input().split(), dtype=np.int32)
A.sort()
B.sort()
C.sort()
num_a = np.searchsorted(A, B, side="left")
num_c = N - np.searchsorted(C, B, side="right")
res = np.dot(num_a, num_c)
print(res)

-from bisect import bisect_left -from bisect import bisect_right +import sys + +input = sys.stdin.buffer.readline +import numpy as np -A = sorted(list(map(int, input().split()))) -B = sorted(list(map(int, input().split()))) -C = sorted(list(map(int, input().split()))) -num_a = 0 -num_c = 0 -res = 0 -pre_b = -1 -for b in B: -    if b == pre_b: -        res += num_a * num_c -        continue -    num_a = bisect_left(A, b)  # a < b となるAの要素数 -    pre_num_c = bisect_right(C, b) -    num_c = N - pre_num_c  # c > b となるAの要素数 -    res += num_a * num_c -    pre_b = b +A = np.array(input().split(), dtype=np.int32)  # 32ビットで9桁の数字を記述できる。今回は10^9までなので、これでOK。 +B = np.array(input().split(), dtype=np.int32) +C = np.array(input().split(), dtype=np.int32) +A.sort() +B.sort() +C.sort() +num_a = np.searchsorted(A, B, side="left") +num_c = N - np.searchsorted(C, B, side="right") +res = np.dot(num_a, num_c)