while gets
  s=$_.upcase.gsub(/[^A-Z]/,"")
  odd=(1..s.size-2).map{|i|
    j=1
    j+=1 while ( (i-j)>=0 && (i+j)<s.size && s[i-j]==s[i+j] )
    j-=1
    j==0?nil:s[i-j..i+j]
  }
  even=(0..s.size-2).map{|i|
    j=0
    j+=1 while ( (i-j)>=0 && (i+j+1)<s.size && s[i-j]==s[i+j+1] )
    j-=1
    j<=0?nil:s[i-j..i+j+1]
  }
  puts (odd+even).compact.uniq.join(" ")
end