#include <stdio.h>

void rightRotate(int arr[], int n, int m) {
    int temp[n], i;
    // 计算实际移动的位置
    m = m % n;

    // 将数组最后m个元素移到临时数组的前面
    for (i = 0; i < m; i++) {
        temp[i] = arr[n - m + i];
    }

    // 将数组前n-m个元素移动到临时数组的后面
    for (i = 0; i < n - m; i++) {
        temp[m + i] = arr[i];
    }

    // 将临时数组的内容复制回原数组
    for (i = 0; i < n; i++) {
        arr[i] = temp[i];
    }
}

int main() {
    int n, m;
    // 读取N和M
    scanf("%d %d", &n, &m);

    int arr[n], i;
    // 读取N个整数
    for (i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }

    // 右移M位
    rightRotate(arr, n, m);

    // 输出结果
    for (i = 0; i < n; i++) {
        if (i > 0) {
            printf(" ");
        }
        printf("%d", arr[i]);
    }
    printf("\n");

    return 0;
}
