str = gets
n = gets.to_i
n.times do
  c = gets.split(" ")
  case c[0]
  when "print"
    puts str[c[1].to_i..c[2].to_i]
  when "reverse"
    str[c[1].to_i..c[2].to_i] = str[c[1].to_i..c[2].to_i].reverse!
  when "replace"
    str[c[1].to_i..c[2].to_i] = c[3]
  end
end