- 같은 방향이라면 각 숫자들의 개수가 같다. 다만 순서가 다를뿐이다.
- 즉, 표본 모양수열의 수의 순서를 옮김으로서 해당 수열을 만들 수 있다.
- 반대반향의 것을 구할 때는 표본 모양수열을 reverse 해주고 각 숫자의 방향의 반대방향의 숫자로 바꿔준 다음에 2번째 방법 그대로 해결을 하면된다.
from collections import deque
l=int(input())
seq=list(map(int, input().split()))
n=int(input())
same=[]
for _ in range(n):
same.append(deque(map(int, input().split())))
def solution(lis):
global ans_list
global cnt
temp=lis.copy()
for _ in range(l):
temp.append(temp.popleft())
if list(temp)==seq:
ans_list[i]=lis
cnt+=1
return
ans_list=[0]*n
cnt=0
for i in range(n):
solution(same[i])
seq.reverse()
for i in range(l):
if seq[i]==1: seq[i]=3
elif seq[i]==2: seq[i]=4
elif seq[i]==3: seq[i]=1
elif seq[i]==4: seq[i]=2
for i in range(n):
solution(same[i])
print(cnt)
for i in ans_list:
if i==0: continue
print(*i)