import java.util.* ;
import java.lang.* ;
import java.io.* ;
class Main
{
private static class Candidates implements Comparable< Candidates> {
public float numb;
public Candidates
( String name,
float numb
) { this .name = name;
this .numb = numb;
}
@Override
public int compareTo( Candidates o)
{
int res = ( int ) ( o.numb - this .numb ) ;
return res;
}
}
public static void main
( String [ ] args
) {
Scanner in
= new Scanner
( System .
in ) ;
int candidateNum = in.nextInt ( ) , ballotNum= in.nextInt ( ) ;
Candidates[ ] candidate= new Candidates[ candidateNum+ 1 ] ;
for ( int i = 0 ; i < candidateNum; i++ )
{
Candidates tmp= new Candidates( s,0 ) ;
candidate[ i] = tmp;
}
Candidates tmp= new Candidates( "Invalid" ,0 ) ;
candidate[ candidateNum] = tmp;
int count = 0 , num= 0 ;
for ( int i = 0 ; i < ballotNum; i++ )
{
count = 0 ;
for ( int j = 0 ; j < candidateNum; j++ )
{
if ( s.charAt ( j) == 'X' )
{
count++;
num = j;
}
if ( Character .
isLetter ( s.
charAt ( j
) ) && s.
charAt ( j
) != 'X' ) count= 2 ;
}
if ( count == 1 )
{
candidate[ num] .numb ++;
}
else
candidate[ candidateNum] .numb ++;
}
Arrays .
sort ( candidate,
0 ,candidateNum
) ; for ( int i = 0 ; i <= candidateNum; i++ )
{
if ( i!= candidateNum)
System .
out .
printf ( "%s %.2f%% \n " , candidate
[ i
] .
name , candidate
[ i
] .
numb * 100 / ballotNum
) ; else
System .
out .
printf ( "%s %.2f%%" , candidate
[ i
] .
name , candidate
[ i
] .
numb * 100 / ballotNum
) ; }
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBNYWluCnsKCQoJcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ2FuZGlkYXRlcyBpbXBsZW1lbnRzIENvbXBhcmFibGU8Q2FuZGlkYXRlcz57CgkgICAgcHVibGljIFN0cmluZyBuYW1lOwoJICAgIHB1YmxpYyBmbG9hdCBudW1iOwoJCgkgICAgcHVibGljIENhbmRpZGF0ZXMoU3RyaW5nIG5hbWUsIGZsb2F0IG51bWIpIHsKCSAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKCSAgICAgICAgdGhpcy5udW1iID0gbnVtYjsKCSAgICB9CgkgICAgCgkgICAgQE92ZXJyaWRlCgkJcHVibGljIGludCBjb21wYXJlVG8oQ2FuZGlkYXRlcyBvKSAKCQl7CgkJCWludCByZXMgPSAoaW50KShvLm51bWIgLSB0aGlzLm51bWIpOwoJCSAgICByZXR1cm4gcmVzOwoJCX0KCX0KCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykKCXsKCQlTY2FubmVyIGluID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKCQkKCQlpbnQgY2FuZGlkYXRlTnVtID0gaW4ubmV4dEludCgpLCBiYWxsb3ROdW09aW4ubmV4dEludCgpOwoJICAgIENhbmRpZGF0ZXNbXSBjYW5kaWRhdGU9bmV3IENhbmRpZGF0ZXNbY2FuZGlkYXRlTnVtKzFdOwoJICAgIFN0cmluZyBzMiA9IGluLm5leHRMaW5lKCk7CgkgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYW5kaWRhdGVOdW07IGkrKykKCSAgICB7CgkgICAgCVN0cmluZyBzID0gaW4ubmV4dExpbmUoKTsKCSAgICAJQ2FuZGlkYXRlcyB0bXA9bmV3IENhbmRpZGF0ZXMocywwKTsKCSAgICAJY2FuZGlkYXRlW2ldPXRtcDsKCSAgICB9CgkgICAgQ2FuZGlkYXRlcyB0bXA9bmV3IENhbmRpZGF0ZXMoIkludmFsaWQiLDApOwoJICAgIGNhbmRpZGF0ZVtjYW5kaWRhdGVOdW1dPXRtcDsKCSAgICBpbnQgY291bnQgPSAwLCBudW09MDsKCSAgICBmb3IgKGludCBpID0gMDsgaSA8IGJhbGxvdE51bTsgaSsrKQoJICAgIHsKCSAgICAgICAgU3RyaW5nIHMgPSBpbi5uZXh0TGluZSgpOwoJICAgICAgICBjb3VudCA9IDA7CgkgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgY2FuZGlkYXRlTnVtOyBqKyspCgkgICAgICAgIHsKCSAgICAgICAgICAgIGlmIChzLmNoYXJBdChqKSA9PSAnWCcpCgkgICAgICAgICAgICB7CgkgICAgICAgICAgICAgICAgY291bnQrKzsKCSAgICAgICAgICAgICAgICBudW0gPSBqOwoJICAgICAgICAgICAgfQoJICAgICAgICAgICAgaWYgKENoYXJhY3Rlci5pc0xldHRlcihzLmNoYXJBdChqKSkgJiYgcy5jaGFyQXQoaikgIT0gJ1gnKQoJICAgICAgICAgICAgICAgIGNvdW50PTI7CgkgICAgICAgIH0KCSAgICAgICAgaWYgKGNvdW50ID09IDEpCgkgICAgICAgIHsKCSAgICAgICAgICAgIGNhbmRpZGF0ZVtudW1dLm51bWIrKzsKCSAgICAgICAgfQoJICAgICAgICBlbHNlCgkgICAgICAgICAgICBjYW5kaWRhdGVbY2FuZGlkYXRlTnVtXS5udW1iKys7CgkgCgkgICAgfQoJICAgIEFycmF5cy5zb3J0KGNhbmRpZGF0ZSwwLGNhbmRpZGF0ZU51bSk7CgkgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gY2FuZGlkYXRlTnVtOyBpKyspCgkgICAgewoJICAgIAlpZihpIT1jYW5kaWRhdGVOdW0pCgkgICAgCQlTeXN0ZW0ub3V0LnByaW50ZigiJXMgJS4yZiUlIFxuIiwgY2FuZGlkYXRlW2ldLm5hbWUsIGNhbmRpZGF0ZVtpXS5udW1iKjEwMC9iYWxsb3ROdW0pOwoJICAgIAllbHNlCgkgICAgCQlTeXN0ZW0ub3V0LnByaW50ZigiJXMgJS4yZiUlIiwgY2FuZGlkYXRlW2ldLm5hbWUsIGNhbmRpZGF0ZVtpXS5udW1iKjEwMC9iYWxsb3ROdW0pOwoJICAgIH0KCX0KfQ==