rt
#include<bits/stdc++.h>
using namespace std;
int n,m,in,jl;
bool f;
struct node{
string name;
double ps,bi;
int b;
}r[114514];
bool cmp(node x,node y){
if(x.bi>y.bi)
return x.bi>y.bi;
return x.b<y.b;
}
string p;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>r[i].name;
r[i].b=i;
}
for(int i=1;i<=m;i++){
cin>>p;
f=0;
for(int j=0;j<n;j++){
if(p[j]=='X'){
if(f==1){
in++;
r[jl].ps--;
break;
}
jl=j+1;
r[j+1].ps++;
f=1;
}
}
if(f==0){
in++;
}
}
for(int i=1;i<=n;i++){
r[i].bi=r[i].ps/double(m)*100;
}
sort(r+1,r+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<r[i].name<<" ";
printf("%.2lf",r[i].bi);
cout<<"%"<<endl;
}
cout<<"Invalid"<<" ";
printf("%.2lf",double(in)/double(m)*100);
cout<<"%";
return 0;
}