#include
using namespace std ;
class node{
public:
int data ;
node* next ;
node(int d){
next = NULL ;
data = d ;
}
};
int length( node* head){
node* temp = head ;
int len= 0 ;
while( temp != NULL ){
temp = temp->next ;
len ++ ;
}
return len ;
}
void insertattail( node*& head, int d){
node* temp = head ;
if( temp ==NULL){
head = new node(d) ;
}
else{
while( temp->next !=NULL){
temp = temp->next ;
}
node* n = new node(d) ;
temp->next = n ;
}
}
node* reverse( node*& head , int k ){
if( k == 0){
return head;
}
node* temp = head ;
int len = length(temp) ;
for( int i = 1 ; i< len - k ; i++){
temp= temp->next ;
}
node* b = temp->next ;
temp->next = NULL ;
node* x = b ;
while( x->next != NULL){
x = x->next ;
}
x->next = head ;
return b ;
}
void print( node* head){
node* temp = head ;
while( temp != NULL){
cout<data <<" " ;
temp = temp->next ;
}
cout<<endl ;
}
/* node* operator>>( istream &cin , node* &n){
int s, d ;
cin>> s ;
cout<< s << endl ;
for(int i = 1; i<= s ; i++){
cin>> d ;
insertattail( n , d) ;
}
return n ;
}
/
int main() {
node a = NULL;
int s, d ;
cin>> s ;
for(int i = 1; i<= s ; i++){
cin>> d ;
insertattail( a , d) ;
}
cin>> d ;
cout<<d<<endl ;
// cin>> a ; //
/* cin>> s ;
for(int i = 1; i<= s ; i++){
cin>> d ;
insertattail( b , d) ;
} */
// print( b ) ;
node* x = reverse( a , d) ;
print( x) ;
return 0;
}