만드는 중입니다

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

순열 군

시간 제한15초메모리 제한1024 MB

요약
주어진 k개의 순열이 만들어 내는 군에 속한 모든 순열의 역전 쌍 개수 평균을 10^9+7 나머지로 구합니다.
난이도

어려움10점 중 9점

유형
조합론, 수학
정답자
아직 제출이 없습니다

문제

이 문제에서는 nn개의 원소로 이루어진 순열을 다룬다. 순열은 1부터 nn까지의 서로 다른 자연수 nn개로 이루어진 수열이다.

순열 a1,a2,…,ana_1, a_2, \ldots, a_n과 b1,b2,…,bnb_1, b_2, \ldots, b_n의 합성은 ab=(ab1,ab2,…,abn)ab = (a_{b_1}, a_{b_2}, \ldots, a_{b_n})이다. 순열 p1,p2,…,pnp_1, p_2, \ldots, p_n에서 역전은 i<ji < j이고 pi>pjp_i > p_j인 인덱스 쌍 (i,j)(i, j)를 뜻한다.

바이텍은 순열을 아주 좋아하며, 가장 좋아하는 순열을 kk개 골랐다. 그는 이 순열들을 임의의 순서로 합성해서 얻을 수 있는 순열을 종이에 적기 시작했다. 그중 일부는 여러 번 사용할 수도 있다. 다만 같은 순열은 한 번만 적도록 신경 썼다.

종이가 금방 떨어졌다. 바이텍은 적을 수 있는 모든 순열의 역전 수가 평균 몇 개인지 궁금해졌다. 이 평균을 구하는 프로그램을 작성하라. 답은 출력 섹션에 설명한 대로 109+710^9 + 7로 나눈 나머지로 구한다.

입력

첫 줄에 정수 nn과 kk가 주어진다 (1≤n,k≤30001 \le n, k \le 3000). nn은 순열의 길이이고, kk는 바이텍이 좋아하는 순열의 개수다.

이어지는 kk개 줄에 바이텍이 좋아하는 순열이 하나씩 주어진다. ii번째 줄에는 ai,1,ai,2,…,ai,na_{i,1}, a_{i,2}, \ldots, a_{i,n}이 주어지며 (1≤ai,j≤n1 \le a_{i,j} \le n), 한 줄의 nn개 수는 모두 서로 다르다.

출력

바이텍이 적을 수 있는 모든 순열의 평균 역전 수를 109+710^9 + 7로 나눈 나머지를 한 줄에 출력한다.

정확히는 답을 기약분수 p/qp/q라고 하자 (q≠0q \neq 0, gcd⁡(p,q)=1\gcd(p, q) = 1). 이때 p×q−1 mod (109+7)p \times q^{-1} \bmod (10^9 + 7)을 출력한다. 여기서 q−1q^{-1}은 qq−1≡1(mod109+7)q q^{-1} \equiv 1 \pmod{10^9 + 7}을 만족하는 11 이상 109+610^9 + 6 이하의 유일한 정수다.

모든 유효한 테스트에서 기약분수의 분모는 109+710^9 + 7로 나누어떨어지지 않는다는 것이 증명되어 있다.

힌트

예제 설명: 첫 번째 경우 바이텍은 역전 0개인 {1,2,3}\{1, 2, 3\}, 역전 2개인 {2,3,1}\{2, 3, 1\}, 역전 2개인 {3,1,2}\{3, 1, 2\}를 적는다. 평균은 4/34/3이다. 3−1≡333333336(mod109+7)3^{-1} \equiv 333333336 \pmod{10^9 + 7}이므로, 답은 333333336×4≡333333337(mod109+7)333333336 \times 4 \equiv 333333337 \pmod{10^9 + 7}이다.

두 번째 경우 바이텍은 원소 5개로 이루어진 모든 순열을 적는다. 이들의 평균 역전 수는 정확히 5다.

예제2

  1. 예제 1

    입력
    3 1
    2 3 1
    
    예상 출력
    333333337
    
  2. 예제 2

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