str = gets.chomp
str_store = str
n = gets.to_i
n.times{
    order,a,b,rep = gets.chomp.split(" ")
    a = a.to_i
    b = b.to_i
    
    case order
    when "print"
        puts str[a..b]
    when "replace"
        str.gsub!(/#{str_store[a..b]}/,rep)
    when "reverse"
         str.gsub!(/#{str[a..b]}/,str_store[a..b].reverse)     
    end
}