import java.util.Scanner; import java.util.List; import java.util.ArrayList; import java.util.Collections; public class No1359 { private static long modpow(long x, long n, long m) { long ret = 1; while (n > 0) { if ((n & 1) != 0) { ret = ret * x % m; } x = x * x % m; n >>= 1; } return ret; } private static long min(long a, long b, long c, long d) { return Math.min(Math.min(a, b), Math.min(c, d)); } private static long max(long a, long b, long c, long d) { return Math.max(Math.max(a, b), Math.max(c, d)); } public static void main(String[] args) { Scanner scan = new Scanner(System.in); int N = scan.nextInt(); int K = scan.nextInt(); int M = scan.nextInt(); List P = new ArrayList(); for (int i=0; i < N; i++) { P.add(scan.nextInt()); } Collections.sort(P); List E = new ArrayList(); for (int i=0; i < N; i++) { E.add(scan.nextInt()); } Collections.sort(E); List A = new ArrayList(); for (int i=0; i < N; i++) { A.add(scan.nextInt()); } Collections.sort(A); List H = new ArrayList(); for (int i=0; i < N; i++) { H.add(scan.nextInt()); } Collections.sort(H); scan.close(); long D = 0; for (int i=0; i < N; i++) { long p = P.remove(0); long e = E.remove(0); long a = A.remove(0); long h = H.remove(0); D = (D + modpow(max(p, e, a, h) - min(p, e, a, h), (long)K, (long)M)) % M; } System.out.println(D); } }