#include <stdio.h>

//#define PRINT
//#define REVERSE
//#define REPLACE

void print (char*);		//print??¢??°???????????????????????£?¨?
void reverse (char*);		//reverse??¢??°???????????????????????£?¨?
void replace (char*);		//replace??¢??°???????????????????????£?¨?

int main (void){

	char str[1001] = {};			//1000???????????§???????????????????´???????
	int n = 0 ;						//????????°???????????????
	int i = 0 ;						//????????????n?????°?????????????????????????????°


	char cmd[8] = {};				//????????????????????? ?????§??§7??????

//	char rep[1001] = {};			//replace???????????£?????´?????????????????????????????????????´????????????°

	scanf("%s", str);				//?????????????????????
	scanf("%d", &n);				//????????°????????????

	for( i = 1 ; i <= n ; i++){			//??????????????????????????????????????????n?????°????????????????????°j????????????

		scanf("%s", cmd);				//??????????????????

		switch(cmd[2]){					//??????????¨???????3?????????????????§?????\??????
		case 'i':				//cmd???print?????´???
			print(str);
			break;
		case 'v':				//cmd???reverse?????´???
			reverse(str);
			break;
		case 'p':				//cmd???replace?????´???
			replace(str);
			break;
		default:
			break;
		}

	}//j???????????????????????§

	return 0;
}	//main??¢??°???????????§

/*print??¢??°
 *main??¢??°??§?????????????¨?????????§?????????????????£?????????????????§???
 *?¬????scanf???2???????????¨a,b??????????????????????????¨?????????*/
void print (char *str){				//str??????????????????????????°??¨??????????????????

	int i = 0 ;						//???????????°
	int a = 0 , b = 0 ;

	scanf("%d", &a);
	scanf("%d", &b);

#ifdef PRINT
	printf("PRINT??¢??°????????????a???%d???b???%d\n" ,a ,b);
	printf("str????????????%s\n" ,str);
	printf("???????????????");
#endif

	for(i = a ; i <= b ; i++){
		printf("%c", str[i]);
	}
		printf("\n");

}
/*reverse??¢??°*/
void reverse (char *str){				//str??????????????????????????°??¨??????????????????

	char tmp[1001] = {};			//??????????????¨
	int i = 0 , j = 0 ;				//???????????°
	int a = 0 , b = 0 ;				//a???????????????b??????????????§?????\????????????

	scanf("%d", &a);
	scanf("%d", &b);
	j = b ;

	/*????????????tmp???str????????????*/
	for(i = 0 ; str[i] != '\0' ; i++){
		tmp[i] = str [i] ;
	}
	tmp[i] = '\0';
	/*????????????????????§*/

#ifdef REVERSE
	printf("REVERSE??¢??°????????????a???%d???b???%d\n" ,a , b);
	printf("str????????????%s\n" ,str);
	printf("tmp????????????%s\n" ,tmp);

#endif

	/*???????????????*/
	for(i = a ; i <= b ; i++){
		str[j] = tmp [i];
		j--;
	}
#ifdef REVERSE
	printf("??\??????????????????str???%s\n" ,str);
#endif
}
/*replace??¢??°*/
void replace (char *str){				//str??????????????????????????°??¨??????????????????

	char tmp[1001] = {};			//???????????????????????????????´???????
	int i = 0 , j = 0 ;				//???????????°
	int a = 0 , b = 0 ;				//a???????????????b??????????????§?????\????????????

	scanf("%d", &a);
	scanf("%d", &b);
	scanf("%s", tmp);				//?????????????????????


#ifdef REPLACE
	printf("REPLACE??¢??°????????????a???%d???b???%d\n" ,a , b);
	printf("str????????????%s\n" ,str);
	printf("tmp????????????%s\n" ,tmp);

#endif

	/*???????????????*/
	for(i = a ; i <= b ; i++){
		str[i] = tmp [j];
		j++;
	}
#ifdef REPLACE
	printf("??\??????????????????str???%s\n" ,str);
#endif
}

Measured memory_bytes: 572