(** val add : int -> int -> int **)

let rec add = ( + )

(** val sub : int -> int -> int **)

let rec sub = ( - )

module Nat =
 struct
  (** val div2 : int -> int **)

  let rec div2 = (fun x -> x / 2)
 end

(** val lower_bound_aux : (int -> bool) -> int -> int -> int **)

let rec lower_bound_aux p_dec x x0 =
  (fun fO fS n -> if n = 0 then fO () else fS (n-1))
    (fun _ ->
    x)
    (fun n0 ->
    if p_dec (add x (Nat.div2 (succ n0)))
    then lower_bound_aux p_dec x (Nat.div2 (succ n0))
    else lower_bound_aux p_dec (add (succ (Nat.div2 (succ n0))) x)
           (sub (succ n0) (succ (Nat.div2 (succ n0)))))
    x0

(** val lower_bound : (int -> bool) -> int -> int -> int **)

let lower_bound p_dec alpha beta =
  lower_bound_aux p_dec alpha (sub beta alpha)

(** val upper_bound_obligation_1 : (int -> bool) -> int -> bool **)

let upper_bound_obligation_1 p_dec n =
  let s = p_dec (succ n) in if s then false else true

(** val upper_bound : (int -> bool) -> int -> int -> int **)

let upper_bound p_dec =
  lower_bound (upper_bound_obligation_1 p_dec)

(** val upper_bound : (int -> bool) -> int -> int -> int **)

let upper_bound p_dec =
  lower_bound (upper_bound_obligation_1 p_dec)

let () =
  let n = Scanf.scanf "%d\n" (fun n -> n) in
  let as_ = Array.init n (fun _ -> Scanf.scanf "%d " (fun a -> a)) in
  let bs = Array.init n (fun _ -> Scanf.scanf "%d " (fun b -> b)) in
  let cs = Array.init n (fun _ -> Scanf.scanf "%d " (fun c -> c)) in
  Array.sort compare as_;
  Array.sort compare bs;
  Array.sort compare cs;
  let cbs = Array.map (fun c -> lower_bound (fun j -> try c < bs.(j) with _ -> true) 0 n) cs in
  let bas = Array.map (fun b -> lower_bound (fun i -> try b < as_.(i) with _ -> true) 0 n) bs in
  let sum_ba = Array.make n 0 in
  sum_ba.(0) <- bas.(0);
  for i = 1 to n - 1 do
    sum_ba.(i) <- bas.(i) - bas.(i - 1) + sum_ba.(i - 1)
  done;
  let sum_cb = Array.make n 0 in
  for i = 0 to cbs.(0) - 1 do
    sum_cb.(0) <- sum_ba.(i) + sum_cb.(0)
  done;
  for i = 1 to n - 1 do
    for j = cbs.(i - 1) to cbs.(i) - 1 do
      sum_cb.(i) <- sum_ba.(j) + sum_cb.(i)
    done;
    sum_cb.(i) <- sum_cb.(i - 1) + sum_cb.(i)
  done;
  for i = 1 to n - 1 do
    sum_cb.(i) <- sum_cb.(i - 1) + sum_cb.(i);
  done;
  Printf.printf "%d\n" sum_cb.(n - 1)