import
java.util.*;
class
GFG{
static
int
findElement(
int
a[],
int
n)
{
int
mx = Integer.MIN_VALUE;
int
ans =
0
;
Map<Integer, Integer> map1 =
new
HashMap<>(),
map2 =
new
HashMap<>();
for
(
int
i =
0
; i < n; i++)
{
map1.put(a[i], map1.getOrDefault(a[i],
0
) +
1
);
}
for
(Integer x : map1.values())
{
map2.put(x, map2.getOrDefault(x,
0
) +
1
);
}
for
(Map.Entry<Integer, Integer> x : map2.entrySet())
{
if
(x.getValue() > mx)
{
mx = x.getValue();
ans = x.getKey();
}
else
if
(x.getValue() == mx)
{
ans = Math.min(ans, x.getKey());
}
}
return
ans;
}
public
static
void
main (String[] args)
{
int
arr[] = {
1
,
1
,
1
,
2
,
3
,
2
,
2
,
3
,
5
,
5
,
5
,
5
,
4
,
4
,
4
,
4
,
4
};
int
n = arr.length;
System.out.println(findElement(arr, n));
}
}