D. Дима и две последовательности
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

У маленького Димы есть две последовательности точек с целочисленными координатами: последовательность (a1, 1), (a2, 2), ..., (an, n) и последовательность (b1, 1), (b2, 2), ..., (bn, n).

Теперь Дима хочет подсчитать сколько различных последовательностей точек длины n можно собрать из этих последовательностей, таких что x-координаты точек в собранной последовательности будут не убывать. Помогите ему в этом. Обратите внимание, что каждый элемент каждой из начальных последовательностей должен быть использован ровно один раз в собранной последовательности.

Две собранные последовательности (p1, q1), (p2, q2), ..., (pn, qn) и (x1, y1), (x2, y2), ..., (xn, yn) Дима считает различными, если найдется такое i (1 ≤ i ≤ 2·n), что (pi, qi) ≠ (xi, yi).

Так как ответ может быть достаточно большим, выведите остаток от деления ответа на число m.

Входные данные

В первой строке задано целое число n (1 ≤ n ≤ 105). Во второй строке заданы n целых чисел a1, a2, ..., an (1 ≤ ai ≤ 109). В третьей строке заданы n целых чисел b1, b2, ..., bn (1 ≤ bi ≤ 109). Числа в строках разделяются пробелами.

В последней строке задано целое число m (2 ≤ m ≤ 109 + 7).

Выходные данные

В единственную строку выведите остаток от деления ответа на задачу на число m.

Примеры
Входные данные
1
1
2
7
Выходные данные
1
Входные данные
2
1 2
2 3
11
Выходные данные
2
Примечание

В первом примере можно получить только одну последовательность: (1, 1), (2, 1).

Во втором примере можно получить такие последовательности : (1, 1), (2, 2), (2, 1), (3, 2); (1, 1), (2, 1), (2, 2), (3, 2). Таким образом ответ 2.