#P708. 约瑟夫的新问题

约瑟夫的新问题

问题描述

将1~M这M个自然数按由小到大的顺序沿顺时针方向围成一圈。以S为起点,先沿顺时针方向数到第N个数就出圈,然后再沿逆时针方向数到第K个数再出圈,再沿顺时针方向数到第N个数就出圈,然后再沿逆时针方向数到第K个数再出圈,……。这样按顺时针方向和逆时针方向不断出圈,直到全部数都出圈为止。

请打印先后出圈的数的序列。

输入格式

文件中共4行,每行为一个自然数,分别表示M,S,N,K。M不超过1000。

输出格式

仅1行,先后出圈的数的序列,每个数之间有1个空格。

样例输入(jsf.in)

8
1
3
2

样例输出(jsf.out)

3 1 5 2 7 4 6 8

(解释:先从1开始沿顺时针方向数到3,所以3先出圈;再从2开始沿逆时针方向数到1,所以1出圈;再从2开始沿顺时针方向数到5,所以5出圈,再从4开始沿逆时针方向数到2,所以2出圈,……)