함수 복원

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

문제

자연수 NN이 주어질 때, 11 이상 NN 이하의 자연수 ii에 대해 정의되는 함수 ff가 있다. 모든 ii에 대해 f(i)f\left(i\right) 또한 11 이상 NN 이하의 자연수다.

ff에 대한 함수 그래프를 정점 ii에서 정점 f(i)f\left(i\right)로 향하는 단방향 간선들로 이루어진 그래프라 부르자. 이 그래프는 ff에 따라 유일하게 결정됨을 알 수 있다.

우리는 함수 ff를 알지 못하지만, ff에 대한 함수 그래프에서 모든 정점에 대한 도달 가능성 정보를 가지고 있다. 정점 uu에서 정점 vv에 도달 가능하다는 것은 00개 이상의 간선을 통해 정점 uu에서 정점 vv로 갈 수 있다는 뜻이다.

함수 ff로 가능한 경우의 수를 구하여라.

입력

첫 줄에 NN이 주어진다. (1N5001 \leq N \leq 500)

그 후, NN개의 줄에 걸쳐 ff에 대한 함수 그래프에서 도달 가능성 정보가 공백으로 구분되어 주어진다. ii번째 줄의 jj번째 수는 ii에서 jj에 도달 가능하면 11, 그렇지 않으면 00이다. 가능한 함수 ff가 존재하지 않는 경우는 주어지지 않는다.

출력

함수 ff로 가능한 경우의 수를 109+710^9 + 7로 나눈 나머지를 출력한다.