# import sys # input = sys.stdin.readline def mp():return map(int,input().split()) def lmp():return list(map(int,input().split())) import math import bisect from copy import deepcopy as dc from itertools import accumulate from collections import Counter, defaultdict, deque def ceil(U,V):return (U+V-1)//V def modf1(N,MOD):return (N-1)%MOD+1 n,k,m = mp() p = [] for i in range(4): a = lmp() a.sort() p.append(a) ans = 0 for i in range(n): q = [] for j in range(4): q.append(p[j][i]) d = max(q)-min(q) ans += pow(d,k,m) print(ans%m)