#include<iostream>
#include<string>

using namespace std;

class bod{
public:
	bool in;
	int vzd;
	string s;
	bod():in(0),vzd(100000){}
	void vz(const bod& b){
		if(in)
			return;
		int d=0;
		for(int i=0;i<s.size();i++)
			if(s[i]!=b.s[i])
				d++;
		//int d=
		if(vzd>d)
			vzd=d;
	}

};
int main(){
	while(1){
	int n;
	cin>>n;
	if (n==0)
		break;
	bod* b;
	b=new bod[n];
	for(int i=0;i<n;i++)
	cin>>b[i].s;
	
	b[0].in=1;
	int min=1000000;
	int minim=0;

	for(int j=0;j<n;j++){
	int mini=0;
	int min=1000000;
		
	for(int i=0;i<n;i++){
		
		
		
		b[i].vz(b[minim]);
		if(min>b[i].vzd && b[i].in==0){
			mini=i;
			min=b[i].vzd;
		}
		
		//cout<<b[i].in<<" "<<b[i].vzd<<endl;
			
	
	
	}
	//cout<<endl;
	
	//cout<<"mini"<<mini<<endl;;
	minim=mini;
	b[minim].in=1;
	
	}
	int v=0;
	for(int i=0;i<n-1;i++)
		v+=b[i+1].vzd;
	cout<<"The highest possible quality is 1/"<<v<<".\n";
	}

}