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)
	}
}

C++: #include <iostream>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;

int main(){
	int n, m=0;
	map<int,int> a;
	vector<int> ans;

	for(int i=1 ; i<=100 ; i++){
		a.insert( map<int,int>::value_type( i , 0 ) );
	}
	while( cin >> n ){
		a[n] += 1;
	}
	for(int i=1 ; i<=100 ; i++){
		m = max( a[i] , m );
	}
	for(int i=1 ; i<=100 ; i++){
		if( m == a[i] ) ans.push_back(i);
	}

	sort( ans.begin() , ans.end() );
	for(int i=0 ; i<ans.size() ; i++){
		cout << ans[i] << endl;
	}
}

C++: #include<stdio.h>
#include<stdlib.h>

int compareq(const void*a, const void*b)
{
	return *(int*)a > *(int*)b ? 1 : *(int*)a == *(int*)b ? 0 : -1;
}

int main()
{
	int numbers[101], i = 0, maxnum[101];
	while (scanf("%d", &numbers[i++]) != EOF)
	{
		qsort(numbers, i, sizeof(int), *compareq);
		int n, cnt = 0, max = 0, j = 0;
		for (n = 0; n < i; n++)
		{
			if (numbers[n] == numbers[n - 1])cnt++;
			else
			{
				if (cnt > max)
				{
					int s = 0;
					while (1)
					{
						maxnum[s++] = 0;
						if (s == 100)break;
					}
					maxnum[0] = n - 1;
					max = cnt;
					cnt = 0;
					j = 0;
				}
				else if (cnt == max)
				{
					maxnum[j++] = n - 1;
					cnt = 0;
				}
				else;
			}
		}
		j = 0;
		while (maxnum[j])
		{
			printf("%d\n", maxnum[j]);
			j++;
		}
	}
	
	return 0;
}

C++: #include <iostream>
#include <cstring>
#include <vector>
#include <cstring>

using namespace std;

int bucket[101];
int ma = 0;

int main()
{
	int a;
	
	memset(bucket, 0, sizeof(bucket));
	
	while(cin>>a, !cin.eof())
	{
		cin >> a;
		bucket[a]++;
		
		ma = max( bucket[a], ma);
	}
	
	for( int i = 0; i < 101; i++)
	{
		if(bucket[i] == ma)
			cout << i << endl;
	}
	
	
	return 0;
}

C++: #include <iostream>
#include <algorithm>

using namespace std;

int main(){
    int cnt[101] = {}, most = 0, a;
    while(cin >> a){
        most = max(most, ++cnt[a]);
    }
    for(int i = 1; i <= 100; i++){
        if(most == cnt[i]){
            cout << i << "\n";
        }
    }
}

C++: #include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;

int main(){

  int a[101];
  int n,M;

  for(int i = 1; i <= 100;i++ )a[i] = 0;
  M = 0;
  while(~scanf("%d",&n)){
    a[n]++;
    M=max(M,a[n]);
  }
  for(int i = 1;i <= 100 ; i++ ){
    if(a[i] == M)cout << i << endl;
}
  return 0;
}

C++: #include<iostream>
using namespace std;
#define MAX 101

main(){
  int T[MAX];

  for ( int i = 0; i < MAX; i++ ) T[i] = 0;
  int x;
  while(  cin >>x ) T[x]++;

  int maxv = 0;
  for ( int i = 0; i < MAX; i++ ){
    if ( maxv < T[i] ){
      maxv = T[i];
    }
  }

  for ( int i = 0; i < MAX; i++ ){
    if ( maxv == T[i] ) cout <<  i << endl;
  }
}

C++: #include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;

int a[100];

int main(void) {
	int n;
	int max = 0;
	for (int i = 0; i < 100; i++)a[i] = 0;

	while (scanf("%d", &n) != EOF) {
		a[n]++;
	}
	for (int i = 0; i < 100; i++) {
		if (a[i] > max)max = a[i];
	}
	for (int i = 0; i < 100; i++) {
		if (a[i] == max)max = printf("%d\n", i);
	}
	return 0;
}

C++: #include <bits/stdc++.h>

using namespace std;
typedef long long ll;
double N;
ll M;
string s;
vector<ll > input1;  
vector<vector <ll > > input2;

int main(){

    vector<pair<int, int > > v;
    for(int i = 0; i < 100; i++){
        v.push_back(make_pair(0, i+1));
    }

    while(1){
        int x;
        cin >> x;
        if(cin.eof()) break;
        //if(x == -1) break;
        v[x-1].first++;
    }

    sort(v.rbegin(),v.rend());

    vector<int > result;
    int temp = v[0].first;
    for(int i = 0; i < 100; i++){
        //cout << v[i].second << endl;
        result.push_back(v[i].second);
        if(v[i].first != v[i + 1].first){
            break;
        }
    }

    sort(result.begin(),result.end());
    for(int i = 0; i < result.size(); i++){
        cout << result[i] << endl;
    }
}

C++: #include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
  int r[100];
  for (int i=0; i<100; i++) r[i] = 0;
  int n;
  while (cin >> n) r[n-1]++;
  for (int i=0; i<100; i++) cout << (i + 1) << ":" << r[n] << endl;
  int maxValue = -1;
  //for (int i=0; i<100; i++) if (r[i] > maxValue) maxValue = r[i];
  //for (int i=0; i<100; i++) if (r[i] == maxValue) cout << i-1 << endl;
  return 0;
}

C++: #include <iostream>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <string>
using namespace std;
#define rep(i,n) for(int i=0;i<n;i++)

int main(void)
{
    int n, a[100], mode = 0;
    while (cin >> n) {
        a[n]++;
        if(mode < a[n])
            mode = a[n];
    }
    
    rep(i, 100) {
        if (a[i] == mode) {
            cout << i << endl;
        }
    }
    
    return 0;
}

C++: #include<iostream>
using namespace std;
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
int count1[101];
int main()
{
	int a;
	
	int max1 = 0;
	memset(count1, 0, sizeof(count1));
	while (cin>>a)
	{
		count1[a]++;
		if (count1[a] > max1)
		{
			max1 = count1[a];
		}
	
	}
	for (int i = 0; i < 101; i++)
	{
		if (max1 == count1[i])
		{
			cout << i << endl;
		}
	}
    return 0;
}

C++: #include<bits/stdc++.h>
using namespace std;
int main(void){
    int n,k[100]={0},max=0;
    while(cin>>n){
        k[n]++;
        if(max<k[n]){
           max=k[n];
        }
    }
    for(int i=0;i<100;i++){
        if(k[i]==max){
            cout<<i<<endl;
        }
    }
}

C++: #include <iostream>

int main()
{
	int count[101],value,max;

	while(std::cin >> value)
	{
		count[value]++;
	}
	max = count[0];
	for(int i=0;i<100;i++)
	{
		if(max < count[i]) max = count[i];
	}
	for(int i=0;i<100;i++)
	{
		if(max == count[i]) std::cout<<i<<std::endl;
	}
	return 0;
}

C++: #include <iostream>
#include <algorithm>
using namespace std;
int main()
{
	int a = 0;
	int b[100];
	int s = 0;
	for (int i = 0; i < 100; i++)
	{
		b[i] = 0;
	}
	while (cin >> a)
	{
		b[a]++;
	}
	for (int i = 0; i < 100; i++)
	{
		if (b[i] > s)
		{
			s = b[i];
		}
	}
	for (int i = 0; i < 100; i++)
	{
		if (b[i] == s)
		{
			cout << i << endl;
		}
	}
	
	return 0;
}

C++: #include<iostream>
#include<string>
using namespace std;
int main(){
	int a[100]={0},b,c=1;
	while(cin>>b){
		a[b-1]++;
		if(a[b-1]>c)
			c=a[b-1];
	}
	for(int i=0;i<100;i++){
		if(a[i]==c)
			cout<<i+1<<endl;
	}
	return 0;
}

C++: #include <stdio.h>
int main(){
char ch;
int num,max;
int p[101]={0};
int q[2][10]={0};
while(scanf("%d",&num) != EOF)    
{         
	p[num] += 1;     
}   

max=0;
for(int i=0;i<101;i++){
if(max<p[i])max=p[i];
}
for(int i=0;i<101;i++){
if(max==p[i])printf("%d\n",i);
}

return 0;
}

C++: #include<iostream>
#include<map>
using namespace std;
main(){
  int a,b=0,c=0,n,x=0,max=0;
  map< int,int >p;
  for(a=0;a++<100;p[a]=0);
  while(cin>>n){
    if(p[n]==0){
      if(b==0||b<n)b=n;
    }
    p[n]++;
  }
  for(a=0;a<b;a++){
    if(max<p[a]){
      max=p[a];
    }
  }
  for(a=0;a<b;a++){
    if(max==p[a]){
      cout<<a<<endl;
    }
  }
  return 0;
}