로봇 모으기

빨간색과 초록색 버튼을 순서대로 눌러 모든 교차로에 흩어진 로봇을 하나의 교차로에 모을 수 있는지 판단합니다.

보통7그래프BFS아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

당신이 보지 않는 사이에 로봇 NN대가 스스로 움직이기 시작해 고향 마을 곳곳으로 흩어졌다. 마을에는 교차로가 NN개 있고 0번부터 N1N-1번까지 번호가 붙어 있으며, 교차로마다 로봇이 정확히 한 대씩 서 있다. 교차로 ii에는 자기 자신이 아닌 교차로를 가리키는 빨간 표지판 riir_i \neq i가 하나, 초록 표지판 giig_i \neq i가 하나 있다.

리모컨의 빨간 버튼을 누르면 모든 로봇이 동시에 빨간 표지판을 따라 움직인다. 교차로 ii에 있던 로봇은 rir_i로 간다. 초록 버튼을 누르면 모든 로봇이 초록 표지판을 따라 gig_i로 간다. 버튼을 적당한 순서로 눌러 로봇 NN대를 모두 같은 시각에 같은 교차로로 모을 수 있는지 판정하는 프로그램을 작성하라.

입력

첫 줄에 데이터 집합의 개수 PP가 주어진다 (1P5001 \le P \le 500). 각 데이터 집합은 서로 독립이고 같은 방법으로 처리한다.

각 데이터 집합은 세 줄로 이루어진다.

  • 첫 줄에는 데이터 집합 번호 KK와 교차로의 개수 NN이 주어진다. KK는 1부터 PP까지 순서대로 붙는다.
  • 둘째 줄에는 r0,,rN1r_0, \ldots, r_{N-1}이 공백으로 구분되어 주어진다 (0riN10 \le r_i \le N-1, riir_i \neq i).
  • 셋째 줄에는 g0,,gN1g_0, \ldots, g_{N-1}이 공백으로 구분되어 주어진다 (0giN10 \le g_i \le N-1, giig_i \neq i).

2N5002 \le N \le 500이고, 모든 데이터 집합의 NN을 더한 값은 2000을 넘지 않는다. 한 교차로의 두 표지판이 같은 곳을 가리킬 수도 있다. 즉 ri=gir_i = g_i인 교차로가 있을 수 있다.

출력

데이터 집합마다 한 줄씩 출력한다. 그 줄에는 데이터 집합 번호 KK, 공백 하나, 그리고 로봇을 모두 한 교차로에 모을 수 있으면 YES를, 없으면 NO를 출력한다.

힌트

예제의 두 번째 데이터 집합에서는 초록, 빨강, 빨강, 초록 순서로 버튼을 누르면 로봇이 모두 2번 교차로에 모인다.