#include <bits/stdc++.h>
using namespace std;

int main() {
	// max distance between same element
	// vector<int> arr={1,1,2,2,2,1};
	// unordered_map<int,int> ok;
	// int dist=0;
	// for(int i=0;i<arr.size();i++){
	// 	if(ok.find(arr[i])!=ok.end()){
	// 		dist=max(dist,i-ok[arr[i]]);
	// 	}else{
	// 			ok[arr[i]]=i;
	// 	}
	
	// }
	// cout<<dist;
	
	//find common character
	vector<string> words = {"acabcddd","bcbdbcbd","baddbadb","cbdddcac","aacbcccd","ccccddda","cababaab","addcaccd"};
	vector<char> ans;
	vector<int> ok(26,1000);
	for(int i=0;i<3;i++){
		vector<int> each(26,0);
		for(int j=0;j<words[i].length();j++){
			each[words[i][j]-'a']++;
		}
		for(char c='a';c<='z';c++){
			ok[c-'a']=min(ok[c-'a'] , each[c-'a']);
		}
		for(char c='a';c<='d';c++){
			cout<<ok[c-'a']<<"    ";
		}
		cout<<endl;
	}
	for(char c='a';c<='z';c++){
		if(ok[c-'a']>=1){
			for(int i=0;i<ok[c-'a'];i++){
				ans.push_back(c);
			}
			
		}
	}
	for(int i=0;i<ans.size();i++){
		cout<<ans[i]<<endl;
	}
// for(char c='a';c<='z';c++){
// 	cout<<c;
// }
	
	
	
	
	
	
	
	
	
	return 0;
}