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; } 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; long min = 0, max = 1; long startTime = System.currentTimeMillis(); for (int i=0; i < N; i++) { int p = P.get(i); int e = E.get(i); min = Math.min(p, e); max = Math.max(p, e); int a = A.get(i); int h = H.get(i); min = Math.min(min, Math.min(a, h)); max = Math.max(max, Math.max(a, h)); D = (D + modpow(max - min, (long)K, (long)M)) % M; } System.out.println(System.currentTimeMillis()-startTime); System.out.println(D); } }