#include <iostream>
#include <string>
using namespace std;

static const int MAX_LENGTH = 1000;

void nreplace(char *input, int start, int end, char *target);
void nswap(char *input, int start, int end);
void nprint(char *input, int start, int end);

int main(void) {
    char *input = new char[MAX_LENGTH+1];
    char *target = new char[MAX_LENGTH+1];
    string command;
    int N, s, e;
    cin >> input;
    cin >> N;

    while(N-- > 0) {
        cin >> command >> s >> e;
        if(command == "replace") {
            cin >> target;
            nreplace(input, s, e, target);
        }
        if(command == "reverse") nswap(input, s, e);
        if(command == "print") nprint(input, s, e);
    }

    return 0;
}

void nreplace(char *input, int start, int end, char *target) {
    for(int i=start; i<=end; i++)
        input[i] = target[i-start];
}

void nswap(char *input, int start, int end) {
    char *st = input;
    char *ed = input;
    char tmp;

    for(int i=0; i<start; i++) st++;
    for(int i=0; i<end; i++) ed++;

    while(st < ed) {
        tmp = *st;
        *st++ = *ed;
        *ed-- = tmp;
    }
}

void nprint(char *input, int start, int end) {
    for(int i=start; i<=end; i++) cout << input[i];
    cout << endl;
}
#include<stdio.h>
int main()
{
	int masu[12][12];
	int n,i,j,w=0,h=0,t=0;
	
	for(;;h=0,w=0,t=0){
		for(i=0;i<11;i++){
			for(j=0;j<11;j++){
				masu[i][j]=0;
			}
		}
		scanf("%d",&n);
		if(n==0)break;
		for(i=0;i<n;i++){
			for(j=0;j<n;j++){
				scanf("%d",&masu[i][j]);
			}
		}
		for(i=0;i<n;i++){
			for(j=0;j<n;j++){
				w+=masu[i][j];
				h+=masu[j][i];
			}
			masu[i][j]=w;
			masu[j][i]=h;
			w=0;
			h=0;
		}
		
		for(i=0;i<=n;i++){
			t+=masu[n][i];
		}
		masu[i-1][j]=t;
		for(i=0;i<=n;i++){
			for(j=0;j<=n;j++){
				printf("%5d",masu[i][j]);
			}
			puts("");
		}
	}
	return 0;
}