순환 노선 세기

아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

루크는 여행지마다 그 도시의 대중교통을 타보는 것을 좋아한다. 그중에서도 한 역에서 출발해 다른 역을 적어도 하나 거친 뒤 출발한 역으로 돌아오는 순환 경로를 찾는 데 재미를 붙였다. 노선망마다 이런 순환 경로가 몇 개나 있는지 알고 싶어 한다.

루크가 세려는 것은 단순 순환이다. 단순 순환은 서로 다른 역의 나열 t1,t2,,tjt_1, t_2, \dots, t_j 로서, 1i<j1 \le i < j 인 모든 ii 에 대해 tit_i 에서 ti+1t_{i+1} 로 바로 가는 연결이 있고, tjt_j 에서 t1t_1 로 바로 가는 연결도 있는 것을 말한다. 순환은 그 안의 어느 역에서든 시작해 적을 수 있으므로, 한 나열을 순환하듯 밀어서 얻은 나열은 모두 같은 단순 순환으로 본다. 반면 같은 역 집합을 다른 순서로 도는 두 단순 순환은 서로 다른 것으로 센다.

노선망에 서로 다른 단순 순환이 몇 개 있는지 세는 프로그램을 작성하시오.

입력

첫째 줄에 노선망의 역 개수 mm 이 주어진다 (3m93 \le m \le 9). 역에는 00 부터 m1m-1 까지 번호가 붙어 있다.

둘째 줄에 연결의 개수 nn 이 주어진다 (1nm(m1)1 \le n \le m(m-1)). 이어지는 nn 개 줄에 연결이 한 줄에 하나씩 주어진다. 각 줄은 두 정수 sstt 로 이루어지며 (0s<m0 \le s < m, 0t<m0 \le t < m, sts \ne t), 역 ss 에서 역 tt 로 가는 일방통행 연결이 있다는 뜻이다.

출력

노선망에 있는 서로 다른 단순 순환의 개수를 출력한다.