1451: 旋转排列

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

题目背景

我们称一个数列  是一个长度为  的排列,当且仅当  满足如下条件:

  1.  的长度为 
  2.  这  个数在  中均恰好出现一次。

题目描述

对于一个排列 ,定义一次“shift”操作是指:将  里的每一个数字都依次向后移动一位,并把  的最后一个数字移动到开头去。

例如,若排列  初始时为 ,则“shift”一次以后将变为 

现在,给定一个长度为  的排列 ,请你按照如下规定循环操作:

  1. 对当前的排列  做一次“shift”操作;
  2. 输出本次“shift”以后的排列 
  3. 判断排列  的最后一个数字是否是 ,如果是,则结束循环操作;否则回到  继续操作。

提示:请严格按照题目给出的顺序进行循环操作

Input

第一行是一个整数,表示排列  的长度 
第二行有  个整数表示排列 ,第  个整数表示 

Output

对于每次操作的第二条“输出”操作,请你输出一行  个整数,按顺序表示当前排列的每个数,一行中相邻两个数之间用一个空格隔开。

Sample Input Copy

4
1 4 2 3

Sample Output Copy

3 1 4 2
2 3 1 4

HINT

样例1解释

1 4 2 3 做第一次shift操作,移动成 4 2 3 1

检查最后一位数字 不等于4,继续执行程序

做第二次 shift操作,移动为 2 3 1 4

最后一个等于4,因此结束。
对全部的测试点,保证  是长度为  的排列。