#include #include #include using namespace std; using ll = long long; int power_mod(int a, int n, int m) { ll ans = 1; ll x = a % m; if (x < 0) x += m; while (n > 0) { if (n % 2 == 1) { ans = (ans * x) % m; } x = (x * x) % m; n /= 2; } return ans; } int max(vector X) { int r = X[0]; for (auto x : X) if (x > r) r = x; return r; } int min(vector X) { int r = X[0]; for (auto x : X) if (x < r) r = x; return r; } int unfairness(int p, int e, int a, int h) { int alpha = max({ p,e,a,h }); int beta = min({ p,e,a,h }); return alpha - beta; } void vector_input(vector& X) { for (int i = 0; i < X.size(); i++) { cin >> X[i]; } sort(X.begin(), X.end()); } int main() { int N, K, M; cin >> N >> K >> M; vector P(N), E(N), A(N), H(N); vector_input(P); vector_input(E); vector_input(A); vector_input(H); ll Y = 0; for (int i = 0; i < N; i++) { Y += power_mod(unfairness(P[i], E[i], A[i], H[i]), K, M); Y %= M; } cout << Y << endl; }