《백개먼》은 주사위 두 개를 던져서 나온 눈의 수만큼 말을 선택하여 정해진 방향으로 이동시키는 게임입니다. 말을 이동할 수 있다면 반드시 이동해야 하며, 두 주사위의 눈이 같다면 각 주사위의 눈을 두 번씩 총 4번 사용해야 합니다. 예를 들어 주사위의 눈이 4, 5라면, 하나의 말을 9칸 이동하거나, 두 개의 말을 각각 4칸, 5칸 이동할 수 있습니다. 그리고 주사위의 눈이 3, 3이라면, 3칸 이동하는 것을 총 4번 진행해야 합니다.
말을 이동할 때, 상대편 말이 두 개 이상 있는 칸으로는 이동할 수 없지만, 상대편 말이 정확히 1개 있는 칸으로 이동하는 것은 가능합니다. 이때 상대편의 말은 처음부터 다시 이동해야 합니다. 따라서 본인의 말이 잡히지 않도록, 본인의 말이 있는 모든 칸에 두 개 이상의 말이 있는 상태를 유지하는 것이 이 게임의 간단한 전략 중 하나입니다. 이러한 상태를 안전한 상태라 합시다. 안전한 상태는 상대편의 말이 없더라도 정의될 수 있습니다.
0번부터 n번까지 왼쪽부터 순서대로 번호가 매겨진 n+1개의 칸이 있고 주사위의 눈이 1부터 n까지 있는 변형된 게임판을 생각해 봅시다. i번 칸에 놓여있는 말 하나에 주사위 눈 x를 사용하면 i+x번 칸으로 이동하게 됩니다. 단, i+x>n인 경우에는 이동할 수 없습니다.
실버는 백개먼의 고수가 되기 위해 안전한 상태를 만드는 연습을 하고 있습니다. 현재 게임판에는 실버의 검은 말만 놓여있는 상태입니다. 성질이 급한 실버는 주사위의 눈을 하나만 남기고 모두 이동했습니다. 현재 0번 칸에는 1개 이상의 말이 있습니다. 마지막 남은 주사위의 눈을 어떻게 사용해야 안전한 상태를 만들 수 있는지 구해봅시다.
첫 번째 줄에 정수 n이 주어집니다.
두 번째 줄에 0번부터 n번까지 각 칸에 있는 말의 개수 a_0, a_1, ⋯, a_n이 공백으로 구분되어 주어집니다.
세 번째 줄에 남은 주사위의 눈을 나타내는 정수 x가 주어집니다.
만약 어떻게 이동하더라도 안전한 상태를 만들 수 없다면 첫 번째 줄에 NO를 출력합니다.
안전한 상태를 만들 수 있다면 첫 번째 줄에 YES를 출력합니다. 다음 줄에 이동할 말의 시작 칸과 도착 칸을 공백으로 구분하여 출력합니다. 가능한 이동이 여러 가지라면 아무거나 한 가지만 출력합니다.