F=
->a{l=a.join(?o*(5-w=a[0].size))
s=?o*25
q=(0..25-l.size).select{|i|i/5==(i+w-1)/5}.map{|i|(?o*i+l+s)}
(h=q[0].size.times.map{|i|q.count{|p|p[i]<?o}}
s[c=h.index(h.max)]=?X
q.reject!{|p|p[c]<?o})while q!=[]
s.scan /.{5}/}
puts 'Sheep'
puts F[['XXXX']]
puts
puts 'Unicorn'
puts F[[
'Xoo',
'oXX']]
puts
puts 'Hippo'
puts F[[
'XoX',
'ooo',
'XoX']]
puts
Rj0KLT5he2w9YS5qb2luKD9vKig1LXc9YVswXS5zaXplKSkKcz0/byoyNQpxPSgwLi4yNS1sLnNpemUpLnNlbGVjdHt8aXxpLzU9PShpK3ctMSkvNX0ubWFwe3xpfCg/byppK2wrcyl9CihoPXFbMF0uc2l6ZS50aW1lcy5tYXB7fGl8cS5jb3VudHt8cHxwW2ldPD9vfX0Kc1tjPWguaW5kZXgoaC5tYXgpXT0/WApxLnJlamVjdCF7fHB8cFtjXTw/b30pd2hpbGUgcSE9W10Kcy5zY2FuIC8uezV9L30KCnB1dHMgJ1NoZWVwJwpwdXRzIEZbWydYWFhYJ11dCnB1dHMKCnB1dHMgJ1VuaWNvcm4nCnB1dHMgRltbCgknWG9vJywKCSdvWFgnXV0KcHV0cwoKcHV0cyAnSGlwcG8nCnB1dHMgRltbCgknWG9YJywKCSdvb28nLAoJJ1hvWCddXQpwdXRzCg==