#include <iostream>
#include<vector>
#include<climits>
#include<unordered_map>
using namespace std;
 
int main() {
	// your code goes here
	vector<int> arr={1,2,3,2,3,1,1};
	int maxAns=INT_MIN;
	int minAns=INT_MAX;
	int minElement=0;
	int maxElement=0;
	
	unordered_map<int,int> m;
 
	for(int i=0;i<arr.size();i++) {
		m[arr[i]]++;
	}
	
	for(auto it=m.begin();it!=m.end();it++) {
		int count=it->second;
		int number=it->first;
		
		if(count<minAns) {
			minAns=count;
			minElement=number;
		}
		
		if(count>maxAns) {
			maxAns=count;
			maxElement=number;
		}
	}
	
	cout<<maxElement<<" "<<maxAns<<endl;
	cout<<minElement<<" "<<minAns<<endl;
	return 0;
}
