#include<stdio.h>
#include<stdlib.h>
  
struct Cvor
{
    int podatak;
    struct Cvor *levi, *desni;
};
  
Cvor *noviCvor(int item)
{
    Cvor *novi =  (Cvor *)malloc(sizeof(Cvor));
    novi->podatak = item;
    novi->levi = novi->desni = NULL;
    return novi;
}

Cvor * Minimum(Cvor * x) {
    if(x == NULL) return NULL;
    if(x->levi == NULL) return x;
    return Minimum(x->levi);
  }



Cvor* ubaciCvor(Cvor* koren, int podatak)
{
    /* ako je stablo prazno, vraca novi koren */
    if (koren == NULL) return noviCvor(podatak);
 
    /* inace, rekurise niz stablo */
    if (podatak < koren->podatak)
        koren->levi  = ubaciCvor(koren->levi, podatak);
    else if (podatak > koren->podatak)
        koren->desni = ubaciCvor(koren->desni, podatak);   
 
    /* vraca (nepromenjen) koren pokazivac */
    return koren;
}


int main()
{
    int N, i=0;
    int podatak1;
    int izlaz;
    scanf("%d",&N);
    
    Cvor *koren = NULL;
    for(i=0;i<N;i++)
    {
        scanf("%d",&podatak1);

        koren = ubaciCvor(koren, podatak1);
    }
        
    Cvor *novi = Minimum(koren);
  
    izlaz= novi->podatak;
    printf("%d",izlaz);
  
    return 0;
}