만드는 중입니다

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

선

시간 제한10초메모리 제한256 MB

요약
n×n 보드를 O와 X로 모두 채울 때, 어떤 행, 열, 주대각선도 한 기호로만 채워지지 않는 보드의 수를 소수 p로 나눈 나머지를 구합니다.
난이도

보통10점 중 7점

유형
조합론, 수학, 구현
정답자
아직 제출이 없습니다

문제

Johnny는 틱택토를 배웠다. 이 게임을 너무 좋아한 나머지 더 큰 판으로 일반화하기로 했다. Johnny가 오목을 모르는 것은 분명하다. 그가 일반화한 게임에서는 자기 기호로 한 줄(세로, 가로 또는 두 주대각선 중 하나)을 모두 채워야 이기기 때문이다. 이 게임의 전략을 세우는 일은 어려워 보여서 Johnny는 더 단순한 문제를 다루기로 했다. 크기가 n×nn \times n인 무승부 판, 즉 O와 X로 완전히 채워져 있고 어떤 줄(세로, 가로 또는 두 주대각선 중 하나)도 한 기호로만 채워지지 않은 판은 몇 개인가? Johnny는 문제의 가장 기본적인 변형을 풀고 싶어서 O와 X의 비율을 임의로 허용하고, 회전이나 대칭으로 얻을 수 있는 판도 서로 다른 판으로 센다. 이 기본 변형에서도 문제는 어려워 보이니, Johnny를 도와 이 문제를 풀어라!

입력

입력은 한 줄이며, 두 정수 nn과 pp가 공백 하나를 사이에 두고 주어진다. (1≤n≤3001 \le n \le 300, 2≤p≤109+92 \le p \le 10^9+9) nn은 Johnny의 판 크기이고 pp는 소수이다.

출력

출력도 한 줄이며, 정수 하나를 출력한다. 이는 O와 X로 완전히 채워져 있고 가로, 세로 또는 두 주대각선 중 어느 줄도 한 기호로만 채워지지 않은 모든 n×nn \times n 판의 수를 pp로 나눈 나머지이다.

예제2

  1. 예제 1

    입력
    3 101
    
    예상 출력
    32
    
  2. 예제 2

    입력
    4 3
    
    예상 출력
    2