#include #include #include using namespace std; const int maxn=2005; const int inf=0x3f3f3f3f; double m[maxn][maxn],low[maxn]; bool vis[maxn]; string str[maxn]; int n; int dist(string s1,string s2) { int cnt=0; for(int i=0;i<7;i++) if(s1[i]!=s2[i]) cnt++; return cnt; } int prim() { memset(vis,false,sizeof(vis)); memset(low,0,sizeof(low)); for(int i=1;i<=n;i++) low[i]=m[1][i]; vis[1]=1; int sum=0; int t; for(int i=1;im[t][j]) low[j]=m[t][j]; } } return sum; } int main() { while(cin>>n&&n) { for(int i=1;i<=n;i++) cin>>str[i]; for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++) m[i][j]=m[j][i]=dist(str[i],str[j]); int ans=prim(); if(ans==1) cout<<"The highest possible quality is 1."<