자연수 N이 주어질 때, 1 이상 N 이하의 자연수 i에 대해 정의되는 함수 f가 있다. 모든 i에 대해 f(i) 또한 1 이상 N 이하의 자연수다.
f에 대한 함수 그래프를 정점 i에서 정점 f(i)로 향하는 단방향 간선들로 이루어진 그래프라 부르자. 이 그래프는 f에 따라 유일하게 결정됨을 알 수 있다.
우리는 함수 f를 알지 못하지만, f에 대한 함수 그래프에서 모든 정점에 대한 도달 가능성 정보를 가지고 있다. 정점 u에서 정점 v에 도달 가능하다는 것은 0개 이상의 간선을 통해 정점 u에서 정점 v로 갈 수 있다는 뜻이다.
함수 f로 가능한 경우의 수를 구하여라.
첫 줄에 N이 주어진다. (1≤N≤500)
그 후, N개의 줄에 걸쳐 f에 대한 함수 그래프에서 도달 가능성 정보가 공백으로 구분되어 주어진다. i번째 줄의 j번째 수는 i에서 j에 도달 가능하면 1, 그렇지 않으면 0이다. 가능한 함수 f가 존재하지 않는 경우는 주어지지 않는다.
함수 f로 가능한 경우의 수를 109+7로 나눈 나머지를 출력한다.