Сплячі корови
Фермер Джон має n корів різних розмірів. Спочатку він збудував для кожної корови окремий хлів, але тепер деякі корови виросли і не поміщаються в свої хліви. Спочатку ФД збудував n хлівів розміром t[1]
, t[2]
, ..., t[n]
, тоді як корови тепер мають розміри s[1]
, s[2]
, ..., s[n]
(1 ≤ s[i]
, t[i]
≤ 10^9
).
Кожної ночі корови виконують ритуал пошуку хліва для сну. Корова i може спати в хліві j лише тоді, коли вона в нього поміщається (s[i]
≤ t[j]
). У кожному хліві може бути не більше однієї корови.
Зіставлення корів з хлівами вважається максимальним, якщо кожна корова, якій призначено хлів, може в ньому поміститися, а кожна корова, якій не призначено хлів, не може поміститися в жоден з вільних хлівів.
Потрібно обчислити максимальну кількість таких зіставлень за модулем 10^9
+ 7.
Вхідні дані
Перший рядок містить число n (1 ≤ n ≤ 3000). Другий рядок містить n цілих чисел s[1]
, s[2]
, ..., s[n]
. Третій рядок містить n цілих чисел t[1]
, t[2]
, ..., t[n]
.
Вихідні дані
Виведіть максимальну кількість зіставлень за модулем 10^9
+ 7.
Приклад
Ось список усіх дев'яти максимальних відповідностей. Упорядкована пара (i, j) означає, що корові i призначено хлів j.
(1, 1), (2, 2), (3, 4) (1, 1), (2, 3), (3, 4) (1, 1), (2, 4) (1, 2), (2, 3), (3, 4) (1, 2), (2, 4) (1, 3), (2, 2), (3, 4) (1, 3), (2, 4) (1, 4), (2, 2) (1, 4), (2, 3)