#include <fstream>
using namespace std;
ifstream cin("publish.in");
ofstream cout("publish.out");
int n,p[101][101],s=1,w[101],zong[101],ans[101];
string st[101];
void init()
{
int i,j,k,q;char a;
string st1;
cin>>n;
for (i=0;i<=n;i++)
for (j=0;j<=n;j++) p[i][j]=0;
cin>>st1;st[1]=st1;w[1]=1;zong[1]++;
for (i=2;i<=n;i++)
{
cin>>st1;
for (j=1;j<=s;j++)
{
if (st[j]==st1) {w[i]=j;zong[j]++;break;}
}
if (j==s+1)
{
s++;w[i]=s;zong[s]=1;st[s]=st1;
}
}
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
{
cin>>a;
if (a=='1')
{
q=0;
for (k=1;k<=j;k++)
if (w[k]==w[j]) q++;
p[w[j]][q]++;
}
}
}
int main()
{
int i,j,a,b,h;
string o;
init();
for (i=1;i<=s;i++)
{
for (h=0;h<=zong[i];h++)
{
a=0;b=0;
for (j=1;j<=zong[i];j++)
{
if (p[i][j]>=h) a++;
}
if (a>=h) ans[i]=h;
}
}
for (i=1;i<=s-1;i++)
for (j=i+1;j<=s;j++)
{
if (ans[i]<ans[j])
{
a=ans[i];ans[i]=ans[j];ans[j]=a;
o=st[i];st[i]=st[j];st[j]=o;
}
if (ans[i]==ans[j])
{
if (st[j]<st[i])
{
a=ans[i];ans[i]=ans[j];ans[j]=a;
o=st[i];st[i]=st[j];st[j]=o;
}
}
}
for (i=1;i<=s;i++)
cout<<st[i]<<' '<<ans[i]<<endl;
return 0;
}