원형으로 앉은 N명과 준서의 모션을 처음 가졌던 사람의 자리 M이 주어질 때, 이 배치가 게임의 모션 교환으로 도달 가능한지 판정하고 가능하면 지목한 자리 번호의 순서를 출력한다.
어려움8수학조합론구현시뮬레이션아직 제출이 없습니다시간 제한2초메모리 제한512 MB준서는 술을 잘 못 마신다. 하지만 준서는 한 소학회의 회장이기 때문에, 새내기 배움터에서의 술 게임을 피할 수 없다. 내가 못 마신다면 남들을 많이 먹이면 되지! 준서는 고민 끝에 아주 어려운 술 게임을 준비해 새내기들을 골탕 먹일 계략을 세웠다.
준서와 새내기들이 N명이 둥글게 둘러앉아 술 게임을 시작한다. 각 자리는 시계방향으로 1 부터 N까지의 번호를 가진다. 준서는 항상 1 번 자리에 앉는다. 게임을 시작하면서 각자의 고유한 모션을 정한다.
술 게임은 다음과 같이 진행된다.
신입생들을 골탕 먹일 생각이 만만했던 준서는 당황할 수 밖에 없었다. 준서의 예상과는 달리, 미친 난이도에도 불구하고 게임이 막힘없이 진행되며 끝나질 않는 것이다. 준서의 정신이 아득해질 때쯤, 준서는 어느 순간 모션의 배치가 처음과 완전히 같은 원순열인 것을 눈치챘다!

<그림1> 같은 원순열의 한 예.
같은 원순열 이란, <그림1>과 같이 돌렸을 때 같은 경우를 의미한다.
혹시 신입생들이 서로 짜고 틀린 모션에 그냥 넘어가 왔던 게 아닐까? 술에 취한 준서는 게임의 진행을 전부 기억하지는 못하지만, 적어도 현재의 모션배치가 부정 없이 만들어질 수 있는지 확인하고 싶다.
술게임에 참가하는 사람의 수 N, 현재 준서가 가지고 있는 모션을 가장 처음 가지고 있었던 사람이 앉아있는 자리의 번호 M 이 차례대로 주어진다.
게임을 무한히 진행하기엔 준서의 체력이 얼마 되지 않으므로, 100만 회의 지목 안에 불가능한 배치라면 "NO" 를 출력한다.
가능한 배치라면 첫 번째 줄에 "YES" 를 출력하고, 두 번째 줄에 게임이 시작하고 현재 상태와 동일한 모션 배치를 만들기 위한 지목 횟수 L, 세 번째 줄에는 지목받은 사람이 앉아있는 자리의 번호를 공백으로 구분하여 순서대로 출력한다.