#include <bits/stdc++.h>
int N;
std::map<int, std::pair<int, int> > m;
std::set<int> ht[100005];
int fac[100005];
int main() {
  std::cin >> N;
  int cnt = 0;
  for (int i = 0; i < N; ++i) {
    int j;
    std::cin >> j;
    ht[i].insert(j);
    ++m[j].first;
  }
  for (int i = 0; i < N; ++i) {
    int j;
    std::cin >> j;
    ++m[j].first;
    if (ht[i].find(j) != ht[i].end()) ++cnt;
    ht[i].insert(j);
  }
  int mod;
  std::cin >> mod;
  long long tot = 1;
  for (std::map<int, std::pair<int, int> >::iterator iter = m.begin();
       iter != m.end(); ++iter) {
    for (int i = 1; i <= iter->second.first; ++i) {
      int tmp = i;
      while (cnt != 0 && (tmp % 2) == 0) {
        tmp /= 2;
        --cnt;
      }
      tot = (tot * tmp) % mod;
    }
  }
  std::cout << tot % mod << std::endl;
}
