#include <iostream>
#include <vector>
#include <math.h>
#include <cstring>
using namespace std;
pair<int,int> updateUtil(pair<int,int>* st,int i,int value,int i1,int j1,int id){
if (i1==j1 && i1==i){
st[id-1].first=value;
st[id-1].second=value;
return st[id-1];
}
else if ((i1<i&&j1<i) || (i1>i && j1>i)) {
return st[id-1];
}
pair<int,int> izq =updateUtil(st,i,value,i1,(i1+j1)/2,id*2),der= updateUtil(st,i,value,((i1+j1)/2)+1,j1,(id*2)+1);
st[id-1].first= max(izq.first,der.first) ;
st[id-1].second= min(izq.second,der.second) ;
return st[id-1];
}
void update(pair<int,int> * st,int i,int value,int n){
updateUtil(st,i,value,1,n,1);
}
pair<int,int> getUtil(pair<int,int>* st,int i,int j,int i1,int j1,int id,bool x){//true mayor, false menor
if (i1>=i && j1<=j) return st[id-1];
else if ((i1<i&&j1<i) || (i1>j && j1>j)) {
return make_pair(-1,99999999);
}
pair<int,int> izq=getUtil(st,i,j,i1,(i1+j1)/2,id*2,x),der= getUtil(st,i,j,((i1+j1)/2)+1,j1,(id*2)+1,x);
return make_pair(max(izq.first,der.first),min(izq.second,der.second));
}
pair<int,int> getRes(pair<int,int> * st,int i,int j,int n){
return getUtil(st,i,j,1,n,1,true);
}
pair<int,int> segmentTree(int * values,pair<int,int> * st,int i,int j,int id){
if (i==j) {
st[id-1].first=values[i-1];
st[id-1].second=values[i-1];
return st[id-1];
}
pair<int,int> izq =segmentTree(values,st,i,(i+j)/2,2*id),der= segmentTree(values,st,((i+j)/2)+1,j,(2*id)+1);
st[id-1].first= max(izq.first,der.first) ;
st[id-1].second= min(izq.second,der.second) ;
return st[id-1];
}
pair<int,int> * buildSegmentTree(int* ar,int size){
int s = pow(2,ceil(log2(size))+1)-1;
pair<int,int> *st = new pair<int,int>[s];
segmentTree(ar,st,1,size,1);
/*for (int i=0;i<s;i++){
cout<<i<<" "<<st[i].first<<" "<<st[i].second<<endl;
}*/
return st;
}
int main(){
int n,q;
int in,fin,in2,fin2;
char c;
int ar [n][n];
scanf("%d",&n);
for (int i=0;i<n;i++){
for (int j=0;j<n;j++){
scanf("%d",&ar[j][i]);
}
}
vector<pair<int,int> *> xs;
int ma[n],me[n];
pair<int,int> * mys,mns;
for (int i=0;i<n;i++){
xs.push_back(buildSegmentTree(ar[i],n));
ma[i]=xs[i][0].first;
me[i]=xs[i][0].second;
}
scanf("%d",&q);
for (int i=0;i<q;i++){
cin.ignore();
scanf("%c %d %d %d",&c,&in,&fin,&in2);
if (c=='c'){
update(xs[fin-1],in,in2,n);
}
else {
scanf("%d",&fin2);
pair<int,int>res = make_pair(-1,999999),aux;
for (int j=fin-1;j<fin2;j++){
//cout<<j<<" "<<fin<<" || "<<fin2<<endl;
aux=getRes(xs[j],in,in2,n);
res.first = max(res.first,aux.first);
res.second = min(res.second,aux.second);
}
printf("%d %d\n",res.first,res.second);
}
//cout<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bWF0aC5oPgojaW5jbHVkZSA8Y3N0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKcGFpcjxpbnQsaW50PiB1cGRhdGVVdGlsKHBhaXI8aW50LGludD4qIHN0LGludCBpLGludCB2YWx1ZSxpbnQgaTEsaW50IGoxLGludCBpZCl7CglpZiAoaTE9PWoxICYmIGkxPT1pKXsKCQlzdFtpZC0xXS5maXJzdD12YWx1ZTsKCQlzdFtpZC0xXS5zZWNvbmQ9dmFsdWU7CgkJcmV0dXJuIHN0W2lkLTFdOwoJfSAKCWVsc2UgaWYgKChpMTxpJiZqMTxpKSB8fCAoaTE+aSAmJiBqMT5pKSkgewoJCXJldHVybiBzdFtpZC0xXTsKCX0KCXBhaXI8aW50LGludD4gaXpxID11cGRhdGVVdGlsKHN0LGksdmFsdWUsaTEsKGkxK2oxKS8yLGlkKjIpLGRlcj0gdXBkYXRlVXRpbChzdCxpLHZhbHVlLCgoaTErajEpLzIpKzEsajEsKGlkKjIpKzEpOwoJc3RbaWQtMV0uZmlyc3Q9IG1heChpenEuZmlyc3QsZGVyLmZpcnN0KSA7CglzdFtpZC0xXS5zZWNvbmQ9IG1pbihpenEuc2Vjb25kLGRlci5zZWNvbmQpIDsKCXJldHVybiBzdFtpZC0xXTsKCQp9CnZvaWQgdXBkYXRlKHBhaXI8aW50LGludD4gKiBzdCxpbnQgaSxpbnQgdmFsdWUsaW50IG4pewoJdXBkYXRlVXRpbChzdCxpLHZhbHVlLDEsbiwxKTsKfQpwYWlyPGludCxpbnQ+IGdldFV0aWwocGFpcjxpbnQsaW50Piogc3QsaW50IGksaW50IGosaW50IGkxLGludCBqMSxpbnQgaWQsYm9vbCB4KXsvL3RydWUgbWF5b3IsIGZhbHNlIG1lbm9yCglpZiAoaTE+PWkgJiYgajE8PWopIHJldHVybiBzdFtpZC0xXTsKCWVsc2UgaWYgKChpMTxpJiZqMTxpKSB8fCAoaTE+aiAmJiBqMT5qKSkgewoJCXJldHVybiBtYWtlX3BhaXIoLTEsOTk5OTk5OTkpOwoJfQoJcGFpcjxpbnQsaW50PiBpenE9Z2V0VXRpbChzdCxpLGosaTEsKGkxK2oxKS8yLGlkKjIseCksZGVyPSBnZXRVdGlsKHN0LGksaiwoKGkxK2oxKS8yKSsxLGoxLChpZCoyKSsxLHgpOwoJcmV0dXJuICBtYWtlX3BhaXIobWF4KGl6cS5maXJzdCxkZXIuZmlyc3QpLG1pbihpenEuc2Vjb25kLGRlci5zZWNvbmQpKTsKfQpwYWlyPGludCxpbnQ+IGdldFJlcyhwYWlyPGludCxpbnQ+ICogc3QsaW50IGksaW50IGosaW50IG4pewoJcmV0dXJuIGdldFV0aWwoc3QsaSxqLDEsbiwxLHRydWUpOwp9CQpwYWlyPGludCxpbnQ+IHNlZ21lbnRUcmVlKGludCAqIHZhbHVlcyxwYWlyPGludCxpbnQ+ICogc3QsaW50IGksaW50IGosaW50IGlkKXsKCWlmIChpPT1qKSB7CgkJc3RbaWQtMV0uZmlyc3Q9dmFsdWVzW2ktMV07CgkJc3RbaWQtMV0uc2Vjb25kPXZhbHVlc1tpLTFdOwoJCXJldHVybiBzdFtpZC0xXTsKCX0KCXBhaXI8aW50LGludD4gaXpxID1zZWdtZW50VHJlZSh2YWx1ZXMsc3QsaSwoaStqKS8yLDIqaWQpLGRlcj0gc2VnbWVudFRyZWUodmFsdWVzLHN0LCgoaStqKS8yKSsxLGosKDIqaWQpKzEpOwoJc3RbaWQtMV0uZmlyc3Q9IG1heChpenEuZmlyc3QsZGVyLmZpcnN0KSA7CglzdFtpZC0xXS5zZWNvbmQ9IG1pbihpenEuc2Vjb25kLGRlci5zZWNvbmQpIDsKCXJldHVybiBzdFtpZC0xXTsKCn0KcGFpcjxpbnQsaW50PiAqIGJ1aWxkU2VnbWVudFRyZWUoaW50KiBhcixpbnQgc2l6ZSl7CglpbnQgcyA9IHBvdygyLGNlaWwobG9nMihzaXplKSkrMSktMTsKCXBhaXI8aW50LGludD4gKnN0ID0gbmV3IHBhaXI8aW50LGludD5bc107CglzZWdtZW50VHJlZShhcixzdCwxLHNpemUsMSk7CgkvKmZvciAoaW50IGk9MDtpPHM7aSsrKXsKCQljb3V0PDxpPDwiICI8PHN0W2ldLmZpcnN0PDwiICI8PHN0W2ldLnNlY29uZDw8ZW5kbDsKCQkKCX0qLwoJcmV0dXJuIHN0Owp9CgppbnQgbWFpbigpewoJaW50IG4scTsKCWludCBpbixmaW4saW4yLGZpbjI7CgljaGFyIGM7CglpbnQgYXIgW25dW25dOwoJc2NhbmYoIiVkIiwmbik7Cglmb3IgKGludCBpPTA7aTxuO2krKyl7CgkJZm9yIChpbnQgaj0wO2o8bjtqKyspewoJCQlzY2FuZigiJWQiLCZhcltqXVtpXSk7CgkJfQoJfQoJdmVjdG9yPHBhaXI8aW50LGludD4gKj4geHM7CglpbnQgbWFbbl0sbWVbbl07CglwYWlyPGludCxpbnQ+ICogbXlzLG1uczsKCWZvciAoaW50IGk9MDtpPG47aSsrKXsKCQl4cy5wdXNoX2JhY2soYnVpbGRTZWdtZW50VHJlZShhcltpXSxuKSk7CgkJbWFbaV09eHNbaV1bMF0uZmlyc3Q7CgkJbWVbaV09eHNbaV1bMF0uc2Vjb25kOwoJCQoJfQoJc2NhbmYoIiVkIiwmcSk7CgkKCWZvciAoaW50IGk9MDtpPHE7aSsrKXsKCQljaW4uaWdub3JlKCk7CgkJc2NhbmYoIiVjICVkICVkICVkIiwmYywmaW4sJmZpbiwmaW4yKTsKCQlpZiAoYz09J2MnKXsKCQkJdXBkYXRlKHhzW2Zpbi0xXSxpbixpbjIsbik7CQoJCX0KCQllbHNlIHsKCQkJc2NhbmYoIiVkIiwmZmluMik7CgkJCXBhaXI8aW50LGludD5yZXMgPSBtYWtlX3BhaXIoLTEsOTk5OTk5KSxhdXg7CgkJCWZvciAoaW50IGo9ZmluLTE7ajxmaW4yO2orKyl7CgkJCQkvL2NvdXQ8PGo8PCIgIjw8ZmluPDwiIHx8ICI8PGZpbjI8PGVuZGw7CgkJCQlhdXg9Z2V0UmVzKHhzW2pdLGluLGluMixuKTsKCQkJCXJlcy5maXJzdCA9IG1heChyZXMuZmlyc3QsYXV4LmZpcnN0KTsKCQkJCXJlcy5zZWNvbmQgPSBtaW4ocmVzLnNlY29uZCxhdXguc2Vjb25kKTsKCQkJfQoJCQlwcmludGYoIiVkICVkXG4iLHJlcy5maXJzdCxyZXMuc2Vjb25kKTsKCQl9CgkJLy9jb3V0PDxlbmRsOwoJCQoJfQoJcmV0dXJuIDA7Cn0=