마방진은 크기의 정사각형 칸에 개의 수를 한 칸에 하나씩 배열하여, 가로, 세로, 가장 긴 두 대각선 방향의 합이 모두 같게 만든 것이다. 예를 들어, 아래 그림은 크기의 마방진의 예시를 보여준다.

개의 수들이 주어질 때, 이 수들을 한 번씩 사용하여 만들 수 있는 크기의 서로 다른 마방진은 모두 몇 개인지 구하는 프로그램을 작성하시오.
이고 개의 수가 로 주어진 예를 생각해보자. 아래와 같이 총 가지 마방진을 만들 수 있음을 알 수 있다.


첫 줄에 마방진의 크기를 나타내는 정수 이 주어진다.
그다음 줄에 마방진에 사용할 개의 정수가 공백으로 구분되어 주어진다. 이 수들은 모두 이상 이하이다.
첫 줄에 만들 수 있는 서로 다른 마방진의 수를 출력한다.
3 9 8 7 6 5 4 3 2 1
8
2 1 0 1 0
0
4 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4
256
3 0 0 0 0 0 0 0 0 0
1
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다.
종류 1: 3점
종류 2: 16점
종류 3: 54점
종류 4: 18점
주어진 개의 수는 각각 또는 이다.
종류 5: 9점
모든 입력 케이스가 주어진다.