두 행 표 채우기

고정된 수와 공통 수를 두 행에 오름차순으로 배치해 각 열이 위에서 아래로 증가하는 경우의 수를 셉니다.

보통6동적 계획법조합론아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

양의 정수 NN이 주어진다. 정수 1,2,3,,2N1, 2, 3, \dots, 2N을 세 집합 AA, BB, CC로 나눈다. 다음 조건을 모두 만족하도록 2행 NN열짜리 표를 채우는 방법의 수를 구한다.

  • 표의 각 칸에 정수를 하나씩 적는다.
  • 집합 AA의 정수는 첫째 행에 적는다.
  • 집합 BB의 정수는 둘째 행에 적는다.
  • 집합 CC의 정수는 어느 행에 적어도 된다.
  • 각 행의 수는 왼쪽에서 오른쪽으로 갈수록 커진다.
  • 각 열의 수는 위에서 아래로 갈수록 커진다.

11부터 2N2N까지의 정수는 표 전체에 정확히 한 번씩 나타난다.

N=4N = 4, A={2,3}A = \{2, 3\}, B={4,7,8}B = \{4, 7, 8\}, C={1,5,6}C = \{1, 5, 6\}인 경우 조건을 만족하는 표는 다음 두 가지뿐이다.

1 2 3 5
4 6 7 8
1 2 3 6
4 5 7 8

입력

첫째 줄에 정수 NN이 주어진다. (1<N351 < N \le 35)

둘째 줄에 집합 AA의 원소 개수 MMAA의 원소가 차례로 주어진다. (0MN0 \le M \le N)

셋째 줄에 집합 BB의 원소 개수 KKBB의 원소가 차례로 주어진다. (0KN0 \le K \le N)

AABB는 서로소이고, 두 집합의 원소는 모두 11 이상 2N2N 이하의 정수다. 한 줄 안의 원소는 정렬되어 있지 않을 수 있다. AA에도 BB에도 속하지 않는 정수가 집합 CC를 이룬다.

출력

조건을 만족하는 표의 개수를 한 줄에 출력한다. 그런 표가 하나도 없으면 00을 출력한다.