#include<stdio.h>
#include<malloc.h>
#include<iostream>
#define max 10000
typedef struct
{
int *elem;
int length;
int size;
}list;
int init(list &L,int n,int m)
{
L.elem=(int *)malloc((n+m)*sizeof(int));
if(L.elem) return 0;
L.size=max;
return 1;
}
void create(list &L,int n)
{
int i;
L.length=n;
for(i=0;i<n;i++)
scanf("%d",&L.elem[i]);
}
void move(list &L,int n,int m)
{
int i;
for(i=0;i<m;i++)
{
L.elem[i+n]=L.elem[i];
}
}
void display(list &L,int n,int m)
{
int i;
for(i=m;i<n+m;i++)
if(i==n+m-1) printf("%d\n",L.elem[i]);
else printf("%d ",L.elem[i]);
}
int main()
{
int n,t1,t2,i;
list T;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&t1);
scanf("%d",&t2);
init(T,t1,t2);
create(T,t1);
move(T,t1,t2);
display(T,t1,t2);
}
return 0;
}
#include<malloc.h>
#include<iostream>
#define max 10000
typedef struct
{
int *elem;
int length;
int size;
}list;
int init(list &L,int n,int m)
{
L.elem=(int *)malloc((n+m)*sizeof(int));
if(L.elem) return 0;
L.size=max;
return 1;
}
void create(list &L,int n)
{
int i;
L.length=n;
for(i=0;i<n;i++)
scanf("%d",&L.elem[i]);
}
void move(list &L,int n,int m)
{
int i;
for(i=0;i<m;i++)
{
L.elem[i+n]=L.elem[i];
}
}
void display(list &L,int n,int m)
{
int i;
for(i=m;i<n+m;i++)
if(i==n+m-1) printf("%d\n",L.elem[i]);
else printf("%d ",L.elem[i]);
}
int main()
{
int n,t1,t2,i;
list T;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&t1);
scanf("%d",&t2);
init(T,t1,t2);
create(T,t1);
move(T,t1,t2);
display(T,t1,t2);
}
return 0;
}