#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define maxsize 1000000
#define numsize 1000000
typedef struct
{
int *elem;
int length;
int listsize;
}list;
int init(list *l)
{
l->elem=(int *)malloc(maxsize *sizeof(int));
if(!l->elem)
return -1;
l->length=0;
l->listsize=maxsize;
return 0;
}
void creat(list *l,int n)
{
int i;
for(i=1;i<=n;i++)
{
scanf("%d",&l->elem[i]);
}
l->length=n;
}
void print(list *l)
{
int i;
for(i=1;i<=l->length;i++)
{
if(i==1)
printf("%d",l->elem[i]);
else printf(" %d",l->elem[i]);
}
}
void exchange(list *l,int m,int len)
{
int i=m,j=len,k;
while(i<j)
{
k=l->elem[i];
l->elem[i]=l->elem[j];
l->elem[j]=k;
i++;
j--;
}
}
int main()
{
int t,n,m,len;
list l;
scanf("%d",&t);
while(t--)
{
scanf("%d %d",&n,&m);
init(&l);
creat(&l,n);
exchange(&l,1,n);
exchange(&l,1,n-m);
exchange(&l,n-m+1,n);
print(&l);
printf("\n");
}
return 0;
}