import java.util.Scanner;
public class PTA8 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int num = in.nextInt();
int move = in.nextInt();
int[] shuzu = new int[num];
for (int a = 0; a < num; a++) {
shuzu[a] = in.nextInt();
}
if (move > 0) {
move = move % num; // 如果数组个数和位移次数成倍数关系时,将move取0,负责直接运算逆序方法change会报错
}
if (move > 0) {
change(shuzu, 0, num - 1); // 数组整体逆序
change(shuzu, 0, move - 1); // 前半部分逆序
change(shuzu, move, num - 1); // 后半部分逆序
}
for (int a = 0; a < num; a++) {
if (a != 0) {
System.out.print(' ');
}
System.out.print(shuzu[a]);
}
}
// 逆序方法
public static void change(int number[], int begin, int end) {
int mid = (begin + end) / 2;
int t = 0; // 寄存数组
while (begin <= mid) {
t = number[begin];
number[begin] = number[end];
number[end] = t;
begin++;
end--;
}
}
}
if (move > 0) {
move = move % num; // 如果数组个数和位移次数成倍数关系时,将move取0,负责直接运算逆序方法change会报错
}
数组个数和位移次数成倍数关系时将位移次数取零的步骤尤为重要,之前写完上传代码的时候总是不能全过,后来再次借鉴ID:coder_666的代码才发现思路相同,但是细节上少考虑了这一点,还需要多努力!