#include<stdio.h>
#include<stdlib.h>
typedef struct Treenode
{
    int data;
    struct treenode *left,*right;
}treenode;
treenode *root=NULL;
treenode *create(int value)
{
    treenode *newnode=(treenode*)malloc(sizeof(treenode));
    newnode->data=value;
    newnode->left=NULL;
    newnode->right=NULL;
    return newnode;
}
treenode *insert(treenode *root,int value)
{
    if(root==NULL)
      return create(value);
    if(value<root->data)
      root->left=insert(root->left,value);
    else if(value>root->data)
      root->right=insert(root->right,value);
     return root;
}
int findmin(treenode *root)
{
    if(root==NULL)
     return -1;
     while(root->left!=NULL)
      root=root->left;
     return root->data;
}
int main()
{
    in n;
    if(scanf("%d",&n)!=1)
     {
     printf("Invalid input");
     return 0;
     }
     treenode *root=NULL;
     int value;
     for(int i=0;i<n;i++)
     {
         if(scanf("%d",&value)!=1)
         {
             printf("Invalid input");
             return 0;
         }
         root=insert(root,value);
     }
     printf("%d",findmin(root));
     return 0;
}