거울 나라 정부가 대규모 고속도로망을 건설하겠다고 발표했다. 계획에 따르면 모든 도로는 양방향이며, 각 도로에는 서로 다른 고유 번호가 붙는다. 각 도로는 서로 다른 두 로터리를 연결하고, 임의의 두 로터리 사이에는 최대 한 개의 도로만 놓인다. 도로끼리는 서로 교차하지 않는다(필요한 곳에는 터널과 다리를 놓는다).
한 불법 레이싱 클럽이 이 발표를 반겼다. 경주를 열려면 정확히 네 개의 이어진 도로가 필요하며, 이 도로들이 하나의 레이싱 트랙을 이룬다. 레이싱 트랙은 정확히 다섯 개의 서로 다른 로터리를 지나야 한다(특히 출발 로터리와 도착 로터리는 서로 달라야 한다). 즉, 트랙은 로터리의 사슬 r1−r2−r3−r4−r5 로, 다섯 로터리가 모두 서로 다르고 이웃한 두 로터리는 도로로 연결되어 있다.
두 경주는 레이싱 트랙이 다르면 서로 다른 경주로 본다. 두 트랙은 정확히 같은 네 개의 도로로 이루어져 있으면 같은 트랙이고, 도로가 적어도 하나 다르면 다른 트랙이다(따라서 같은 트랙을 반대 방향으로 달리는 것은 같은 트랙이다).
주어진 도로망에 대해, 클럽이 열 수 있는 서로 다른 레이싱 트랙이 몇 개인지 세는 프로그램을 작성하라.
첫 줄에 테스트 케이스의 개수 d (1≤d≤100)가 주어진다.
각 테스트 케이스의 첫 줄에는 두 정수 n과 m (1≤n≤200; 0≤m≤n(n−1)/2)이 주어지며, n은 로터리의 수, m은 도로의 수이다. 이어지는 m개의 줄에는 각각 두 정수 u, v (1≤u,v≤n)가 주어지고, 이는 로터리 u와 로터리 v가 도로로 연결되어 있음을 뜻한다.
각 테스트 케이스마다, 주어진 도로망에서 만들 수 있는 서로 다른 레이싱 트랙의 개수를 한 줄에 하나씩 출력한다.