바이트랜드의 과학자들은 쓰리 비트 컴퓨터(TBC)를 넘어, 훨씬 더 강력한 새 설계인 양자 쓰리 비트 컴퓨터(QTBC) 로 나아갔다. 양자 기계에서는 메모리 초기화가 완전히 다른 문제인데, 어떤 연산을 하든 그 부작용이 모든 메모리에 동시에 영향을 주기 때문이다.
이를 해결하기 위해 과학자들은 대규모 제어 임펄스(LSCI) 를 사용한다. 하나의 임펄스는 모든 메모리 비트에 동시에, 정확히 같은 방식으로 작용하므로 함수 f:{0,1,…,n−1}→{0,1,…,n−1} 로 나타낼 수 있다. 임펄스 f 를 방출하면, 현재 상태가 s 인 모든 비트는 상태 f(s) 로 바뀐다. 예를 들어 f(3)=5 는 상태 3 인 모든 비트가 상태 5 로 바뀐다는 뜻이다.
과학자들은 서로 다른 임펄스 f1,f2,…,fk 를 방출할 수 있다. 임펄스는 원하는 순서로, 원하는 만큼 반복해서 방출할 수 있으며, 임펄스들을 차례로 방출하면 대응하는 함수가 모든 비트에 동시에, 순서대로 적용된다.
각 비트의 초기 상태가 무엇이든, 모든 메모리 비트를 상태 0 으로 만드는 임펄스의 순서가 존재하는지 판정하여라. 다시 말해, 주어진 함수들의 어떤 합성이 {0,1,…,n−1} 의 모든 상태를 0 으로 보내는지 판정하는 문제이다.
첫째 줄에 테스트 케이스의 수 T (1≤T≤10) 가 주어진다.
각 테스트 케이스의 첫째 줄에는 두 정수 n 과 k (1≤n≤200, 1≤k≤5) 가 주어진다. 여기서 n 은 메모리 비트가 가질 수 있는 상태의 수이고, k 는 사용할 수 있는 임펄스의 수이다.
이어지는 k 개의 줄은 각각 하나의 임펄스를 나타낸다. 그중 i 번째 줄에는 n 개의 정수 fi(0) fi(1) … fi(n−1) 이 하나의 공백으로 구분되어 주어지며, 각 값은 {0,1,…,n−1} 에 속한다.
각 테스트 케이스마다 한 줄에, 모든 메모리 비트를 상태 0 으로 만들 수 있으면 YES 를, 그렇지 않으면 NO 를 출력한다.