#include<stdio.h>
#include<stdlib.h>
typedef struct node{
    int data;
    struct node *next;
    struct node *prev;
}node;
node *head=NULL,*tail;
void create(int num){
    node *newnode=(node*)malloc(1*sizeof(node));
    newnode->data=num;
    newnode->next=NULL;
    newnode->prev=NULL;
    if(head==NULL){
        head=newnode;
        tail=newnode;
    }
    else{
       tail->next=newnode;
       newnode->prev=tail;
       tail=newnode;
    }
}
void dis(){
    node *i
    for(i=head;i!=NULL;i=i->next){
        printf("%d ",i->data);
    }
    node *temp=head;
    int min=head->data;
    while(temp!=NULL){
        if(temp->data<min){
            min=temp->data;
        }
        temp=temp->next;
    }
    printf("\n%d",min);

int main(){
    int n,num;
    scanf("%d ",&n);
    if(n<=0){
        printf("Invalid input");
        return 0;
    }
    for(int i=1;i<=n;i++){
        scanf("%d",&num);
        create(num);
    }
    dis();
    return 0;
}