Mooball 팀 나누기 III
시간 제한2초메모리 제한1024 MB
빨간 팀과 파란 팀이 모두 비어 있지 않고 서로 겹치지 않으며, 수평이나 수직 그물 하나로 나뉘는 경우의 수를 10^9+7로 나눈 나머지로 구합니다.
문제
Farmer John의 농장에는 마리의 소가 있다 (). 소에는 부터 까지 번호가 매겨져 있다. 번 소는 정수 좌표 에 있다 (). Farmer John은 mooball 경기를 위해 두 팀을 고르려고 한다.
한 팀은 "빨강" 팀, 다른 팀은 "파랑" 팀이다. 두 팀 모두 비어 있으면 안 되고, 각 소는 최대 한 팀에만 속한다(어느 팀에도 속하지 않을 수 있다). mooball에는 규칙이 하나 더 있다. 무한히 긴 그물을 처럼 정수가 아닌 좌표에서 수평선 또는 수직선으로 쳐야 하며, 두 팀은 이 그물로 나뉘어야 한다. 소들은 이 조건을 만족시키려고 움직이지 않는다.
이 조건을 모두 만족하는 빨강 팀과 파랑 팀을 고르는 방법의 수를 로 나눈 나머지를 구하라.
입력
첫째 줄에 정수 이 주어진다.
다음 개의 줄에는 공백으로 구분된 두 정수 와 가 각각 주어진다. 는 부터 까지의 순열이고, 도 부터 까지의 순열이다.
출력
조건을 모두 만족하는 빨강 팀과 파랑 팀을 고르는 방법의 수를 로 나눈 나머지를 한 줄에 출력한다.