시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 512 MB 25 1 1 100.000%

문제

준서는 술을 잘 못 마신다. 하지만 준서는 한 소학회의 회장이기 때문에, 새내기 배움터에서의 술 게임을 피할 수 없다. 내가 못 마신다면 남들을 많이 먹이면 되지! 준서는 고민 끝에 아주 어려운 술 게임을 준비해 새내기들을 골탕 먹일 계략을 세웠다.

준서와 새내기들이 N명이 둥글게 둘러앉아 술 게임을 시작한다. 각 자리는 시계방향으로 1 부터 N까지의 번호를 가진다. 준서는 항상 1 번 자리에 앉는다. 게임을 시작하면서 각자의 고유한 모션을 정한다.

술 게임은 다음과 같이 진행된다.

  1. 준서가 자신의 모션을 취하며 게임을 시작한다.
  2. 자신을 제외한 N-1명의 사람 중 한명을 손가락으로 지목한다.
  3. 지목당한 사람의 왼쪽 두 사람이 서로 모션을 바꾼다.
  4. 지목당한 사람의 오른쪽 두 사람도 서로 모션을 바꾼다.
  5. 지목당한 사람은 자신이 가졌다고 생각하는 모션을 취한다.
  6. 만약 지목당한 사람이 가진 모션과 취한 모션이 다르다면, 벌칙주를 마시며 게임을 종료한다.
  7. 같다면, 지목당한 사람이 다른 사람을 지목하며 게임을 계속 진행한다.
  8. 3-7을 계속해서 반복한다.

신입생들을 골탕 먹일 생각이 만만했던 준서는 당황할 수 밖에 없었다. 준서의 예상과는 달리, 미친 난이도에도 불구하고 게임이 막힘없이 진행되며 끝나질 않는 것이다. 준서의 정신이 아득해질 때쯤, 준서는 어느 순간 모션의 배치가 처음과 완전히 같은 원순열인 것을 눈치챘다!


<그림1> 같은 원순열의 한 예.

같은 원순열 이란, <그림1>과 같이 돌렸을 때 같은 경우를 의미한다.

혹시 신입생들이 서로 짜고 틀린 모션에 그냥 넘어가 왔던 게 아닐까? 술에 취한 준서는 게임의 진행을 전부 기억하지는 못하지만, 적어도 현재의 모션배치가 부정 없이 만들어질 수 있는지 확인하고 싶다.

입력

술게임에 참가하는 사람의 수 N, 현재 준서가 가지고 있는 모션을 가장 처음 가지고 있었던 사람이 앉아있는 자리의 번호 M 이 차례대로 주어진다.

출력

게임을 무한히 진행하기엔 준서의 체력이 얼마 되지 않으므로, 100만 회의 지목 안에 불가능한 배치라면 "NO" 를 출력한다.

가능한 배치라면 첫 번째 줄에 "YES" 를 출력하고, 두 번째 줄에 게임이 시작하고 현재 상태와 동일한 모션 배치를 만들기 위한 지목 횟수 L, 세 번째 줄에는 지목받은 사람이 앉아있는 자리의 번호를 공백으로 구분하여 순서대로 출력한다.

제한

  • 1 ≤ MN
  • 0 ≤ L ≤ 1,000,000

서브태스크 1 (100점)

  • 5 ≤ N ≤ 7

서브태스크 2 (30점)

  • 5 ≤ N ≤ 1000

서브태스크 3 (10점)

  • 5 ≤ N ≤ 2000

예제 입력 1

5 5

예제 출력 1

YES
4
2 1 4 3

준서가 게임을 시작하며 2번 자리에 앉은 현영을 지목한다. 현영이 모션을 취하고, 1번과 5번, 3번과 4번이 서로의 모션을 바꾼다.

저번에 지목당한 현영이 1번 자리에 앉은 준서를 지목한다. 준서는 모션을 취하고, 4번과 5번, 2번과 3번이 서로의 모션을 바꾼다.

저번에 지목당한 준서가 4번 자리에 앉은 성혁을 지목한다. 성혁은 모션을 취하고, 1번과 5번, 2번과 3번이 서로의 모션을 바꾼다.

저번에 지목당한 성혁이 3번 자리에 앉은 태규를 지목한다. 태규는 모션을 취하고, 4번과 5번, 1번과 2번이 서로의 모션을 바꾼다.


 

위와 같이 게임이 진행되면 준서가 정했던 1번 모션을 5번 자리에 앉은 진영이 가지며, 게임을 시작할 때의 모션 배치와 완전히 같은 원순열이다.

채점

  • 예제는 채점하지 않는다.