만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

정다각형 선분

시간 제한2초메모리 제한512 MB

요약
남은 다각형 꼭짓점을 방문하는 순서 중에서 새로 그은 선분이 모두 기존 선분과 교차하고 P0로 되돌아오는 순서의 수를 센다.
난이도

어려움10점 중 8점

유형
백트래킹, 동적 계획법, 비트 연산, 기하
정답자
아직 제출이 없습니다

문제

도현이는 종이에 점 NN개를 찍어 정 NN각형을 만들었다. 꼭짓점에는 시계 방향으로 11번부터 NN번까지 번호가 붙어 있다.

그 다음 선분 M−1M-1개를 그렸다. 꼭짓점 번호를 P0,P1,…,PM−1P_0, P_1, \dots, P_{M-1} 순서로 이어서, P0P_0과 P1P_1, P1P_1과 P2P_2, 이런 식으로 PM−2P_{M-2}와 PM−1P_{M-1}까지 연결했다.

이제 남은 꼭짓점을 모두 한 번씩 방문하고 P0P_0으로 돌아오는 경로를 이어서 그리려고 한다. 남은 꼭짓점을 방문하는 순서를 T0,T1,…,TN−M−1T_0, T_1, \dots, T_{N-M-1}이라고 하면, PM−1P_{M-1}과 T0T_0, T0T_0과 T1T_1, 이런 식으로 TN−M−2T_{N-M-2}와 TN−M−1T_{N-M-1}까지 연결하고, 마지막으로 TN−M−1T_{N-M-1}과 P0P_0을 연결한다. PP에 없는 꼭짓점은 TT에 정확히 한 번씩 들어간다.

선분을 새로 그릴 때마다, 그 선분은 이미 그려져 있는 선분 중 적어도 하나와 교차해야 한다. 이미 그려져 있는 선분에는 PP를 따라 그린 선분과 이 과정에서 앞서 그린 선분이 모두 들어간다. 두 선분이 교차한다는 것은 두 선분 모두의 내부에 있는 점을 공유한다는 뜻이므로, 끝점 하나만 같은 두 선분은 교차하지 않는다.

NN, MM, PP가 주어졌을 때 가능한 TT의 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 NN과 MM이 공백으로 구분되어 주어진다. (4≤N≤184 \le N \le 18, 2≤M≤N−12 \le M \le N-1)

둘째 줄에 P0P_0부터 PM−1P_{M-1}까지 MM개의 수가 순서대로 주어진다. 각 수는 11 이상 NN 이하이고, 서로 다르다.

출력

첫째 줄에 가능한 TT의 개수를 출력한다.

예제4

  1. 예제 1

    입력
    5 3
    1 3 5
    
    예상 출력
    1
    
  2. 예제 2

    입력
    6 3
    1 4 2
    
    예상 출력
    1
    
  3. 예제 3

    입력
    7 3
    2 4 7
    
    예상 출력
    2
    
  4. 예제 4

    입력
    7 6
    1 2 3 4 6 5
    
    예상 출력
    0