#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void Shu(int a[],int n,int su[]);
int main()
{
int n;
scanf("%d",&n);
int a[n];
int i;
for (i=0;i<n;i++)
{
scanf(" %d",&a[i]);
}
int su[n];
Shu(a,n,su);
int max=su[0];
int m,l=0;
for (m=1;m<n;m++)
{
if (su[m]>max)
{
max=su[m];
l=m;
}
else if (su[m]==max)
{
if (a[l]-a[m]>0)
{
max=su[m];
l=m;
}
}
}
printf("%d",a[l]);
return 0;
}
void Shu(int a[],int n,int su[])
{
int b[n];
strcpy(b,a);
int i,j;
int m;
int con;
for (i=0;i<n;i++)
{
m=a[i];
con=0;
for (j=i+1;j<n;j++)
{
if(b[j]==m)
{
con++;
}
}
su[i]=con;
}
}
#include <stdlib.h>
#include <string.h>
void Shu(int a[],int n,int su[]);
int main()
{
int n;
scanf("%d",&n);
int a[n];
int i;
for (i=0;i<n;i++)
{
scanf(" %d",&a[i]);
}
int su[n];
Shu(a,n,su);
int max=su[0];
int m,l=0;
for (m=1;m<n;m++)
{
if (su[m]>max)
{
max=su[m];
l=m;
}
else if (su[m]==max)
{
if (a[l]-a[m]>0)
{
max=su[m];
l=m;
}
}
}
printf("%d",a[l]);
return 0;
}
void Shu(int a[],int n,int su[])
{
int b[n];
strcpy(b,a);
int i,j;
int m;
int con;
for (i=0;i<n;i++)
{
m=a[i];
con=0;
for (j=i+1;j<n;j++)
{
if(b[j]==m)
{
con++;
}
}
su[i]=con;
}
}