Go: package main

import (
	"bufio"
	"fmt"
	"os"
	"sort"
	"strconv"
)

var scanner = bufio.NewScanner(os.Stdin)

func nextString() string {
	scanner.Scan()
	return scanner.Text()
}

func nextInt() (int, error) {
	return strconv.Atoi(nextString())
}

type Pair struct {
	key   int
	value int
}

func main() {
	scanner.Split(bufio.ScanWords)

	counts := map[int]int{}
	for {
		n, err := nextInt()
		if err != nil {
			break
		}

		counts[n]++
	}

	pairs := []Pair{}
	for k, v := range counts {
		pairs = append(pairs, Pair{k, v})
	}
	sort.Slice(pairs, func(i, j int) bool {
		if pairs[i].value == pairs[j].value {
			return pairs[i].key < pairs[j].key
		}
		return pairs[i].value > pairs[j].value
	})

	vMax := 0
	for _, pair := range pairs {
		if vMax != 0 && vMax != pair.value {
			break
		}
		if pair.value > vMax {
			vMax = pair.value
		}
		fmt.Println(pair.key)
	}
}

Python: num = [[0,i+1] for i in range(100)]
while True:
    try:
        num[int(input())-1][0] += 1
    except:
        num.sort(reverse = True)
        ans = []
        for i in range(100):
            if num[i][0] == num[0][0]:
                ans.append(num[i][1])
            else:
                ans.sort()
                for z in ans:
                    print(z)
                break
        break

Python: # 0028
array = []
while True:
    try:
        a = input()
        array.append(int(a))
    except EOFError: break
s = set(array)
mx = max(sorted(s, reverse=True), key = array.count)
for a in sorted(s, key = array.count, reverse=True):
    print(a)
    if a == mx: break

Python: 
L = [0] * 101
while True:
    try:
        k = int(input())
        L[k] += 1
    except EOFError:
        break

max = max(L)
for i in range(101):
    if L[i] == max:
        print(i)

Python: l=[0]*101
while True:
    try:
        x=int(input())
        l[x]+=1
    
    except:
        max_va=max(l)
        for i in range(101):
            if l[i]==max_va:
                print(i)
        
        break

Python: #50 最頻値

import collections
collections.Counter

x = [0]*101     
while True:
        try:
                x[int(input())] += 1
        except EOFError:
                break           #EOFErrorになったらbreakする
        
max = max(x)
for i in range(101):
        if x[i] == max:
                print(i)

Python: # 0028
array = []
while True:
    try:
        a = input()
        array.append(int(a))
    except EOFError: break
s = set(array)
mx = max(sorted(s, reverse=True), key = array.count)
for a in sorted(s, key = array.count, reverse=True):
    print(a)
    if a == mx: break

Python: 
a = []
try :
    while True:
        a.append(int(input()))
except EOFError:
    pass
# print('@', a)

counts = [0] * 101
# counts[n]  n の個数を数える

for n in a:
    counts[n] += 1

# print('@', counts)
# print('@', max(counts))

for n in range(len(a)):
    if counts[n] == max(counts):
        print(n)

Python: m=[0]*100
while 1:
    try:
        n=input()
        m[n-1]+=1
    except:
        break
mmax=max(m)
for i in xrange(100):
    if m[i]==mmax:
        print(i+1)

Python: a=[]
try:
    while True:
       a.append(int(input()))
except EOFError:
    pass
counts=[0]*101

for n in a:
    counts[n] += 1
for n in range(len(a)):
    if counts[n] == max(counts):
        print(n)

Python: # 0028
array = []
while True:
    try:
        a = input()
        if a == '': break
        array.append(int(a))
    except EOFError:
        break
s = set(array)
mx = max(list(map(lambda a: array.count(a), set(array))))
for a in sorted(s):
    if array.count(a) == mx:
        print(a)

Python: # -*- coding:utf-8 -*-
array = []
while True:
    try:
        a = int(input())
        array.append(a)
    except EOFError:
        break

data = [0]*101
for i in range(len(array)):
    data[array[i]] += 1
    
m = [i for i,j in enumerate(data) if j == max(data)]
for i in range(len(m)):
    print(m[i])

Python: 
a = [0]*101

while True:
    try:
        a[int(input())] += 1

    except EOFError:
        break

k = max(a)
for i in range(100):
    if a[i] == k:
        print(i)

Python: num = [0] * 100
mode = 0
while True:
    try:
        a = int(input())
        num[a-1] += 1
        if num[a-1] > mode:
            mode = num[a-1]
    except:
        break
for i, n in enumerate(num):
    if n == mode:
        print(i+1)

Python: a=[]
while True:
    try:
        a.append(int(input()))
    except:
        break
count=[0]*101
for i in a:
    count[i]+=1
for i in range (len(a)):
    if count[i]==max(count):
        print(i)

Python: import sys
i_f = {}
for line in sys.stdin:
  v = int(line)
  if i_f.get(v) is None:
    i_f[v] = 0
  i_f[v] += 1

ans = {}
for i, f in i_f.items():
  if ans.get(f) is None:
    ans[f] = []
  ans[f].append(i)
ans = [ (a,vs) for a, vs in ans.items() ]
ans = max(ans, key=lambda x:x[0])
#print(ans)

for i in sorted(ans[1]):
  print(i)

Python: import sys
from collections import defaultdict
d = defaultdict(int)
for i in sys.stdin:
    d[i] +=1
l = sorted([(k, v) for k, v in d.items()], key=lambda x:x[1], reverse=True)
print(l[0][0])
print(l[1][0])

Python: a=[]
try:
    while True:
        a.append(int(input()))
except EOFError:
    pass
#print('@',a)

counts = [0]*101
# counts[n] nの個数を数える
#print('@',counts)

for n in a:
    counts[n] +=1
    
#print('@',counts)
#print('@',max(counts))

for n in range(len(a)):
    if counts[n]==max(counts):
        print(n)

Python: a=[]
try:
    while True:
        a.append(int(input()))
except EOFError:
    pass
counts=[0]*101

for n in a:
    counts[n] += 1
    
for n in range(len(a)):
    if counts[n] == max(counts):
        print(n)

Python: s=[0]*101
i=0
try:
    while True:
        n=int(input())
        s[n]+=1
except EOFError:
    pass

for i in range(len(s)):
    if s[i]==max(s):
        print(i)

Python: x=[]
y=[]
z=[]
while True:
    try:
        n=int(input())
        x.append(n)
    except EOFError:
        break
    
Counter = [0] * 101

for n in x:
    Counter[n] += 1
    y.append(Counter[n])
#    print(n)
    
#print(y)
#print(x)

y_len=len(y)
for i in range(y_len):
#    print(i,x[i],y[i])
    if y[i]==max(y):
#        print(x[i])
        z.append(x[i])
#print(z)
z.sort()
z_len=len(z)
for i in range(z_len):
    print(z[i])

Python: a=[ ]
try:
    while True:
        a.append(int(input()))
except EOFError:
    pass
    
counts=[0]*101
for n in a:
    counts[n]+=1

for n in range(len(a)):
    if counts[n]==max(counts):
     print(n)

Python: # 0028
array = []
while True:
    try:
        a = input()
        array.append(int(a))
    except EOFError:
        break
s = set(array)
mx = max(list(map(lambda a: array.count(a), s)))
modes = list(filter(lambda a: array.count(a) == mx, sorted(s)))
print(*modes, sep = '\n')

Python: a = []
try:
    while True:
        a.append(int(input()))
except EOFError:
    pass
    
count = [0]*101

for n in a:
    count[n] += 1

for n in range(len(a)):
    if count[n] == max(count):
        print(n)

Python: count = [0 for i in range(100)]
while True:
    try:
        count[int(input()) - 1] += 1
    except:
        break
max_e = 0
max_i = []
for i in range(100):
    temp = max_e
    max_e = max(count[i], max_e)
    if temp == max_e and count[i] == max_e:
        max_i.append(i + 1)
    elif temp != max_e:
        max_i = [i + 1]
for i in max_i:
    print(i)

Python: a = [0] * 100

while 1:
    try:
        n = int(input())
        a[n] += 1
    except:
        break

v = max(a)
for i in range(100):
    if v == a[i]:
        print(i)

Python: import sys
a={}
for i in sys.stdin:
 a.setdefault(i,0);a[i]+=1
for k in a:
 if a[k]==max(a.values()):print(k.strip())

Python: a=[]
try:
    while True:
        a.append(int(input()))
except EOFError:
    pass

counts=[0]*101

for n in a:
    counts[n]+=1
    
for n in range(len(a)):
    if counts[n] == max(counts):
        print(n)