n = gets.to_i r = gets.split(" ").map{|s| s.to_i}.sort g = gets.split(" ").map{|s| s.to_i}.sort b = gets.split(" ").map{|s| s.to_i}.sort max = 3*10**3+1 cnt_r = Array.new(max, 0) cnt_g = Array.new(max, 0) cnt_b = Array.new(max, 0) 0.upto(n-1) {|i| cnt_r[r[i]] += 1 cnt_g[g[i]] += 1 cnt_b[b[i]] += 1 } 1.upto(max-1) {|i| cnt_r[i] += cnt_r[i-1] cnt_g[i] += cnt_g[i-1] cnt_b[i] += cnt_b[i-1] } cnt = 0 0.upto(n-1) {|i| a = r[i] rn = cnt_r[a] - cnt_r[a-1] 1.upto(a) {|j| gn = cnt_g[j] - cnt_g[j-1] bn = cnt_b[a] - cnt_b[a-j] cnt += rn * gn * bn } } puts cnt