import List main=putStr$unlines[d 1#c#d 1,(1?1)#c#(2?2),(He?He)#c#(H?H),d 2#b#d 6,(3?4)#b#(5?10),(Li?Be)#b#(B?Ne),d 2#b#d 6,(11?12)#b#(13?18),(Na?Mg)#b#(Al?Ar),d 2#a#d 16,(19?20)#a#(21?36),(K?Ca)#a#(Sc?Kr),d 2#a#d 16,(37?38)#a#(39?54),(Rb?Sr)#a#(Y?Xe),d 32,(55?86),(Cs?Rn),d 32,(87?118),(Fr?Uuo),d 32] (!)=replicate x#y=x++y i?j="|"#f(intersperse"|"[g(show k)|k<-[i..j]])#"|" f=concat s=(!' ') a=s 55 b=s 95 c=s 119 d n='+':f(n!"---+") g[c]|elem c['A'..'Z']=g$[c]++" " g"Am"=g"am" g s=r.take 3.(#" ").r$s r=reverse data A=He|H|Li|Be|B|C|N|O|F|Ne|Na|Mg|Al|Si|P|S|Cl|Ar|K|Ca|Sc|Ti|V|Cr|Mn|Fe|Co|Ni|Cu|Zn|Ga|Ge|As|Se|Br|Kr|Rb|Sr|Y|Zr|Nb|Mo|Tc|Ru|Rh|Pd|Ag|Cd|In|Sn|Sb|Te|I|Xe|Cs|Ba|La|Ce|Pr|Nd|Pm|Sm|Eu|Gd|Tb|Dy|Ho|Er|Tm|Yb|Lu|Hf|Ta|W|Re|Os|Ir|Pt|Au|Hg|Tl|Pb|Bi|Po|At|Rn|Fr|Ra|Ac|Th|Pa|U|Np|Pu|Am|Cm|Bk|Cf|Es|Fm|Md|No|Lr|Rf|Db|Sg|Bh|Hs|Mt|Ds|Rg|Cn|Uut|Uuq|Uup|Uuh|Uus|Uuo deriving(Enum,Show)