gets p gsub(/ /,' ') gsub('.','|_') gsub(/_( |$)/,'_|') ['',*$_].zip([*$_]){|a,b|o='' 99.times{|i|o<<(b&&b[i]==95?95:a.chop[i]||32)} puts o.rstrip}