#!usr/bin/env python3

from collections import defaultdict, deque, Counter, OrderedDict

from bisect import bisect_left, bisect_right

from functools import reduce, lru_cache

from heapq import heappush, heappop, heapify



import itertools

import math, fractions

import sys, copy



def L(): return sys.stdin.readline().split()

def I(): return int(sys.stdin.readline().rstrip())

def SL(): return list(sys.stdin.readline().rstrip())

def LI(): return [int(x) for x in sys.stdin.readline().split()]

def LI1(): return [int(x) - 1 for x in sys.stdin.readline().split()]

def LS(): return [list(x) for x in sys.stdin.readline().split()]

def R(n): return [sys.stdin.readline().strip() for _ in range(n)]

def LR(n): return [L() for _ in range(n)]

def IR(n): return [I() for _ in range(n)]

def LIR(n): return [LI() for _ in range(n)]

def LIR1(n): return [LI1() for _ in range(n)]

def SLR(n): return [SL() for _ in range(n)]

def LSR(n): return [LS() for _ in range(n)]



def perm(n, r): return math.factorial(n) // math.factorial(r)

def comb(n, r): return math.factorial(n) // (math.factorial(r) * math.factorial(n-r))



def make_list(n, *args, default=0): return [make_list(*args, default=default) for _ in range(n)] if args else [default for _ in range(n)]



dire = [[1, 0], [0, 1], [-1, 0], [0, -1]]

dire8 = [[1, 0], [1, 1], [0, 1], [-1, 1], [-1, 0], [-1, -1], [0, -1], [1, -1]]

alphabets = "abcdefghijklmnopqrstuvwxyz"

ALPHABETS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

MOD = 1000000007

INF = float("inf")



sys.setrecursionlimit(1000000)



def main():

    N = I()

    A, B, C = sorted(LI()), sorted(LI()), sorted(LI())



    ans = 0

    for bi in B: ans += bisect_left(A, bi) * (N - bisect_right(C, bi))

    

    print(ans)







if __name__ == '__main__':

    main()
#!usr/bin/env python3

from collections import defaultdict, deque, Counter, OrderedDict

from bisect import bisect_left, bisect_right

from functools import reduce, lru_cache

from heapq import heappush, heappop, heapify



import itertools

import math, fractions

import sys, copy



def L(): return sys.stdin.readline().split()

def I(): return int(sys.stdin.readline().rstrip())

def SL(): return list(sys.stdin.readline().rstrip())

def LI(): return [int(x) for x in sys.stdin.readline().split()]

def LI1(): return [int(x) - 1 for x in sys.stdin.readline().split()]

def LS(): return [list(x) for x in sys.stdin.readline().split()]

def R(n): return [sys.stdin.readline().strip() for _ in range(n)]

def LR(n): return [L() for _ in range(n)]

def IR(n): return [I() for _ in range(n)]

def LIR(n): return [LI() for _ in range(n)]

def LIR1(n): return [LI1() for _ in range(n)]

def SLR(n): return [SL() for _ in range(n)]

def LSR(n): return [LS() for _ in range(n)]



def perm(n, r): return math.factorial(n) // math.factorial(r)

def comb(n, r): return math.factorial(n) // (math.factorial(r) * math.factorial(n-r))



def make_list(n, *args, default=0): return [make_list(*args, default=default) for _ in range(n)] if args else [default for _ in range(n)]



dire = [[1, 0], [0, 1], [-1, 0], [0, -1]]

dire8 = [[1, 0], [1, 1], [0, 1], [-1, 1], [-1, 0], [-1, -1], [0, -1], [1, -1]]

alphabets = "abcdefghijklmnopqrstuvwxyz"

ALPHABETS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

MOD = 1000000007

INF = float("inf")



sys.setrecursionlimit(1000000)



def main():

    N = I()

    A, B, C = sorted(LI()), sorted(LI()), sorted(LI())



    ans = 0

    for bi in B:

        left, right = -1, N

        while right - left > 1:

            mid = (right + left) // 2

            if A[mid] < bi: left = mid

            else: right = mid

        tmp = left

        left, right = -1, N

        while right - left > 1:

            mid = (left + right) // 2

            if C[mid] > bi: right = mid

            else: left = mid

        ans += (tmp + 1) * (N - right)



    print(ans)







if __name__ == '__main__':

    main()
#!usr/bin/env python3
from collections import defaultdict, deque, Counter, OrderedDict
from bisect import bisect_left, bisect_right
from functools import reduce, lru_cache
from heapq import heappush, heappop, heapify
import itertools
import math, fractions
import sys, copy


def L():
    return sys.stdin.readline().split()


def I():
    return int(sys.stdin.readline().rstrip())


def SL():
    return list(sys.stdin.readline().rstrip())


def LI():
    return [int(x) for x in sys.stdin.readline().split()]


def LI1():
    return [int(x) - 1 for x in sys.stdin.readline().split()]


def LS():
    return [list(x) for x in sys.stdin.readline().split()]


def R(n):
    return [sys.stdin.readline().strip() for _ in range(n)]


def LR(n):
    return [L() for _ in range(n)]


def IR(n):
    return [I() for _ in range(n)]


def LIR(n):
    return [LI() for _ in range(n)]


def LIR1(n):
    return [LI1() for _ in range(n)]


def SLR(n):
    return [SL() for _ in range(n)]


def LSR(n):
    return [LS() for _ in range(n)]


def perm(n, r):
    return math.factorial(n) // math.factorial(r)


def comb(n, r):
    return math.factorial(n) // (math.factorial(r) * math.factorial(n - r))


def make_list(n, *args, default=0):
    return (
        [make_list(*args, default=default) for _ in range(n)]
        if args
        else [default for _ in range(n)]
    )


dire = [[1, 0], [0, 1], [-1, 0], [0, -1]]
dire8 = [[1, 0], [1, 1], [0, 1], [-1, 1], [-1, 0], [-1, -1], [0, -1], [1, -1]]
alphabets = "abcdefghijklmnopqrstuvwxyz"
ALPHABETS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
MOD = 1000000007
INF = float("inf")
sys.setrecursionlimit(1000000)


def main():
    N = I()
    A, B, C = sorted(LI()), sorted(LI()), sorted(LI())
    ans = 0
    for bi in B:
        ans += bisect_left(A, bi) * (N - bisect_right(C, bi))
    print(ans)


if __name__ == "__main__":
    main()

#!usr/bin/env python3
from collections import defaultdict, deque, Counter, OrderedDict
from bisect import bisect_left, bisect_right
from functools import reduce, lru_cache
from heapq import heappush, heappop, heapify
import itertools
import math, fractions
import sys, copy


def L():
    return sys.stdin.readline().split()


def I():
    return int(sys.stdin.readline().rstrip())


def SL():
    return list(sys.stdin.readline().rstrip())


def LI():
    return [int(x) for x in sys.stdin.readline().split()]


def LI1():
    return [int(x) - 1 for x in sys.stdin.readline().split()]


def LS():
    return [list(x) for x in sys.stdin.readline().split()]


def R(n):
    return [sys.stdin.readline().strip() for _ in range(n)]


def LR(n):
    return [L() for _ in range(n)]


def IR(n):
    return [I() for _ in range(n)]


def LIR(n):
    return [LI() for _ in range(n)]


def LIR1(n):
    return [LI1() for _ in range(n)]


def SLR(n):
    return [SL() for _ in range(n)]


def LSR(n):
    return [LS() for _ in range(n)]


def perm(n, r):
    return math.factorial(n) // math.factorial(r)


def comb(n, r):
    return math.factorial(n) // (math.factorial(r) * math.factorial(n - r))


def make_list(n, *args, default=0):
    return (
        [make_list(*args, default=default) for _ in range(n)]
        if args
        else [default for _ in range(n)]
    )


dire = [[1, 0], [0, 1], [-1, 0], [0, -1]]
dire8 = [[1, 0], [1, 1], [0, 1], [-1, 1], [-1, 0], [-1, -1], [0, -1], [1, -1]]
alphabets = "abcdefghijklmnopqrstuvwxyz"
ALPHABETS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
MOD = 1000000007
INF = float("inf")
sys.setrecursionlimit(1000000)


def main():
    N = I()
    A, B, C = sorted(LI()), sorted(LI()), sorted(LI())
    ans = 0
    for bi in B:
        left, right = -1, N
        while right - left > 1:
            mid = (right + left) // 2
            if A[mid] < bi:
                left = mid
            else:
                right = mid
        tmp = left
        left, right = -1, N
        while right - left > 1:
            mid = (left + right) // 2
            if C[mid] > bi:
                right = mid
            else:
                left = mid
        ans += (tmp + 1) * (N - right)
    print(ans)


if __name__ == "__main__":
    main()

-        ans += bisect_left(A, bi) * (N - bisect_right(C, bi)) +        left, right = -1, N +        while right - left > 1: +            mid = (right + left) // 2 +            if A[mid] < bi: +                left = mid +            else: +                right = mid +        tmp = left +        left, right = -1, N +        while right - left > 1: +            mid = (left + right) // 2 +            if C[mid] > bi: +                right = mid +            else: +                left = mid +        ans += (tmp + 1) * (N - right)