Go: package main

import (
	"fmt"
	"sort"
)

func main() {
	var max int

	numbers := map[int]int{}
	for {
		var a int
		_, err := fmt.Scan(&a)
		if err != nil {
			break
		}
		numbers[a]++
		if numbers[a] >= max {
			max = numbers[a]
		}
	}

	var modes []int
	for a, b := range numbers {
		if b == max {
			modes = append(modes, a)
		}
	}

	sort.Ints(modes)
	for _, mode := range modes {
		fmt.Println(mode)
	}
}

C++: 
//Nayeem Shahriar Joy ,Applied Physics And Electronic Engineering , University of Rajshahi.

  #include <iostream>
  #include <cstdio>
  #include <algorithm>
 
  using namespace std;
 
  char data[1000000];
 
  int main(void)
  {
    int n;
    int max = 0;
     
    while (scanf("%d", &n) != EOF){
        data[n]++;
    }
     
    for (int i = 0; i < 1000000; i++){
         
        if (data[i] > max){
            max = data[i];
        }
    }
    for (int i = 0; i < 1000000; i++){
        if (data[i] == max){
            printf("%d\n", i);
        }
    }
     
    return (0);
}

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

int main(int argc, char* argv[]) {
  map<int, int> data;
  int var;
  int max = 0;
  while(cin >> var) {
    data[var]++;
    if(data[var] > max) {
      max = data[var];
    }
  }
  //cout << max << endl;
  for(map<int, int>::iterator it=data.begin(); it!=data.end(); it++) {
    if(it->second == max) cout << it->first << endl;
  }
}

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

int main()
{
	int data[101] = {0}, n, max = 0;

	while (cin >> n){
		data[n]++;
	}

	for (int i = 1; i < 101; i++){
		if (max < data[i]) max = data[i];
	}

	for (int i = 1; i < 101; i++){
		if (data[i] == max) cout << i << endl;
	}

	return (0);
}

C++: #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <time.h>
#include <math.h>
#include <vector>
#include <queue>
#include <map>
#include <set>
#include <algorithm>
#include <iterator>
#include <sstream>
#include <string>
#include <bitset>
using namespace std;
#define FOR(I,F,N) for(int I = F; I < (int)(N); I++)
#define rep(i, n) FOR(i, 0, n)
#define FIN(V) cout<<V<<endl
#define pb push_back
#define INF (1 << 30)
typedef pair<int, int> P;
typedef long long ll;
typedef priority_queue<int> pq;
int StrToInt(string);
string IntToStr(int);
int dx[4] = {1, -1, 0, 0};
int dy[4] = {0, 0, 1, -1};

int main(void){
	int n;
	vector<int> v(101, 0);
	while(cin >> n){
		v[n]++;
	}
	int mx = 0;
	rep(i,v.size()){
		if(v[i] > mx)mx = v[i];
	}
	rep(i,v.size()){
		if(v[i] == mx)cout << i << endl;
	}

	return 0;
}

C++: #include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
int main(){
	int a;
	vector<int> in;
	while(scanf("%d",&a)!=EOF){
		if(a==0)	break;
		in.push_back(a);
	}
	map<int,int> dic;
	for(int it:in)	dic[it]++;
	int num=0;
	for(auto it:dic)	num=max(num,it.second);
	for(auto it:dic){
		if(num==it.second)	cout<<it.first<<endl;
	}
	return 0;
}

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

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

C++: #include<iostream>
#include<algorithm>
using namespace std;
int main() {
	int l[100] = { 0 };
	int n = 0;
	int g;
	while (cin >> g) {
		g--;
		l[g]++;
		n = max(n, l[g]);
		cout << l[g] << endl;
	}
	for (int i = 0; i < 100; i++){
		if (l[i] == n)
			cout << i + 1 << endl;
	}
	}