방향 그래프 G가 주어진다. 길이가 K보다 작은 서로 다른 사이클의 개수를 구하는 프로그램을 작성하시오. 이 개수는 매우 커질 수 있으므로 M으로 나눈 나머지를 출력한다.
사이클은 노드를 차례로 나열한 것이며, 같은 노드가 여러 번 나와도 된다. 각 노드에서 다음 노드로 가는 간선이 있어야 하고, 마지막 노드에서 첫 번째 노드로 가는 간선도 있어야 한다. 사이클의 길이는 나열한 노드의 개수이다. 나열 순서가 다르면 서로 다른 사이클로 센다. 예를 들어 (0,1,2)와 (1,2,0)은 서로 다른 사이클이다.
노드에는 0번부터 N−1번까지 번호가 붙어 있다.