고속도로 레이싱 트랙

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

문제

거울 나라 정부가 대규모 고속도로망을 건설하겠다고 발표했다. 계획에 따르면 모든 도로는 양방향이며, 각 도로에는 서로 다른 고유 번호가 붙는다. 각 도로는 서로 다른 두 로터리를 연결하고, 임의의 두 로터리 사이에는 최대 한 개의 도로만 놓인다. 도로끼리는 서로 교차하지 않는다(필요한 곳에는 터널과 다리를 놓는다).

한 불법 레이싱 클럽이 이 발표를 반겼다. 경주를 열려면 정확히 네 개의 이어진 도로가 필요하며, 이 도로들이 하나의 레이싱 트랙을 이룬다. 레이싱 트랙은 정확히 다섯 개의 서로 다른 로터리를 지나야 한다(특히 출발 로터리와 도착 로터리는 서로 달라야 한다). 즉, 트랙은 로터리의 사슬 r1r2r3r4r5r_1 - r_2 - r_3 - r_4 - r_5 로, 다섯 로터리가 모두 서로 다르고 이웃한 두 로터리는 도로로 연결되어 있다.

두 경주는 레이싱 트랙이 다르면 서로 다른 경주로 본다. 두 트랙은 정확히 같은 네 개의 도로로 이루어져 있으면 같은 트랙이고, 도로가 적어도 하나 다르면 다른 트랙이다(따라서 같은 트랙을 반대 방향으로 달리는 것은 같은 트랙이다).

주어진 도로망에 대해, 클럽이 열 수 있는 서로 다른 레이싱 트랙이 몇 개인지 세는 프로그램을 작성하라.

입력

첫 줄에 테스트 케이스의 개수 dd (1d1001 \le d \le 100)가 주어진다.

각 테스트 케이스의 첫 줄에는 두 정수 nnmm (1n2001 \le n \le 200; 0mn(n1)/20 \le m \le n(n-1)/2)이 주어지며, nn은 로터리의 수, mm은 도로의 수이다. 이어지는 mm개의 줄에는 각각 두 정수 uu, vv (1u,vn1 \le u, v \le n)가 주어지고, 이는 로터리 uu와 로터리 vv가 도로로 연결되어 있음을 뜻한다.

출력

각 테스트 케이스마다, 주어진 도로망에서 만들 수 있는 서로 다른 레이싱 트랙의 개수를 한 줄에 하나씩 출력한다.