import Data.List x?y=x+signum(y-x) i#[a,b]=i$w(==)a b m=map;l=length;f=filter;w=zipWith z a|(x,_:y)<-break(<'.')a=m read[x,y] n[f,d]|and#[f,d]=[f]|let=f:n[w(?)f d,d] main=interact$show.m(l.f(>1).m l.group.sort.(n=<<)).(\x->[x,f(or#)x]).m(m z.f(>".").words).lines