만드는 중입니다

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

도달 가능한 수열

시간 제한4초메모리 제한512 MB

요약
두 순열 a^(i)와 a^(j)에 대해, a^(j)에서 순서가 뒤바뀐 두 원소를 교환해 a^(i)를 만들 수 있는 순서쌍 (i, j)의 개수를 구합니다.
난이도

어려움10점 중 8점

유형
조합론, 비트 연산, 배열
정답자
아직 제출이 없습니다

문제

ZZX에게 1,2,…,n1, 2, \ldots, n의 순열인 수열 aa가 있다. ZZX는 이 수열을 수정하려고 한다. 수정 한 번에는 1≤i<j≤n1 \le i < j \le n이고 ai>aja_i > a_j인 정수 쌍 ii, jj를 고르고, aia_i와 aja_j를 교환한다.

초기 수열 aa에 수정을 여러 번 (0번도 가능) 적용해서 순열 bb를 얻을 수 있으면, ZZX는 bb가 aa에서 도달 가능하다고 말한다.

JRY에게는 1,2,…,n1, 2, \ldots, n의 순열인 수열 mm개 a(1),a(2),…,a(m)a^{(1)}, a^{(2)}, \ldots, a^{(m)}이 있다. 1≤i≤m1 \le i \le m이고 1≤j≤m1 \le j \le m인 쌍 (i,j)(i, j) 중에서 a(i)a^{(i)}가 a(j)a^{(j)}에서 도달 가능한 경우의 수를 구하려고 한다.

입력

첫 줄에 정수 TT가 주어진다. 이후 TT개의 테스트 케이스가 주어진다. 각 테스트 케이스의 첫 줄에는 두 정수 nn과 mm이 주어진다. 이어서 mm개의 줄이 주어지며, kk번째 줄에는 a1(k),a2(k),…,an(k)a^{(k)}_1, a^{(k)}_2, \ldots, a^{(k)}_n이 공백으로 구분되어 주어진다. 각 a(k)a^{(k)}는 11부터 nn까지의 순열이다.

작은 테스트 케이스는 최대 10001000개이며 1≤n≤51 \le n \le 5, 1≤m≤5001 \le m \le 500을 만족한다. 큰 테스트 케이스는 11개이며 1≤n≤91 \le n \le 9, 1≤m≤3⋅1051 \le m \le 3 \cdot 10^5을 만족한다.

출력

각 테스트 케이스의 답을 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    2
    3 3
    1 2 3
    3 1 2
    2 3 1
    2 2
    1 2
    1 2
    
    예상 출력
    5
    4