#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pii pair<int,int>
#define pll pair<ll,ll>
#define fi first
#define se second
#define FOR(i,k,n) for(int i =(k),_n=(n); i<=_n; i++)
#define FOD(i,k,n) for(int i =(k),_n=(n); i>=_n; i--)
#define pb push_back
const int maxn =1e5+6;
int a[maxn],mx[4*maxn],n,t,lz[4*maxn];
void build(int id, int l,int r){
if ( l > r) return;
if ( l== r){
mx[id]=a[l];
return;
}
int mid =(l+r)/2;
build(2*id,l,mid);
build(2*id+1,mid+1,r);
mx[id]=max(mx[2*id],mx[2*id+1]);
}
void pus(int id, int l ,int r){
if (lz[id]){
mx[id]=lz[id];
if (l == r){
lz[2*id]=lz[id];
lz[2*id+1]=lz[id];
}
lz[id]=0;
}
}
void upd(int id, int l, int r, int u, int v, int w){
if ( l > v || r < u) return;
if ( l >= u&& r <=v) {
lz[id]=w;
pus(id,l,r);
return;
}
int mid =(l+r)/2;
upd(2*id,l,mid,u,v,w);
upd(2*id+1,mid+1,r,u,v,w);
mx[id]=max(mx[2*id],mx[2*id+1]);
}
int query(int id,int l, int r, int u, int v){
if ( l > v || r < u) return INT_MIN;
if ( l >= u && r <=v) return mx[id];
int mid =(l+r)/2;
int q1=query(2*id,l,mid,u,v);
int q2=query(2*id+1,mid+1,r,u,v);
return max(q1,q2);
}
int main(){
ios_base::sync_with_stdio(false);cin.tie(NULL);
cin >> n;
FOR(i,1,n) cin >> a[i];
build(1,1,n);
cin >> t;
build(1,1,n);
FOR(i,1,t){
int type;
cin >> type;
if (type ==1){
int u,v,w;
cin >> u >> v >> w;
upd(1,1,n,u,v,w);
}
else{
int u,v;
cin >> u >> v;
cout << query(1,1,n,u,v) << endl;
}
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBwaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIHBsbCBwYWlyPGxsLGxsPgojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgRk9SKGksayxuKSBmb3IoaW50IGkgPShrKSxfbj0obik7IGk8PV9uOyBpKyspCiNkZWZpbmUgRk9EKGksayxuKSBmb3IoaW50IGkgPShrKSxfbj0obik7IGk+PV9uOyBpLS0pCiNkZWZpbmUgcGIgcHVzaF9iYWNrCmNvbnN0IGludCBtYXhuID0xZTUrNjsKaW50IGFbbWF4bl0sbXhbNCptYXhuXSxuLHQsbHpbNCptYXhuXTsKdm9pZCBidWlsZChpbnQgaWQsIGludCBsLGludCByKXsKICAgIGlmICggbCA+IHIpIHJldHVybjsKICAgIGlmICggbD09IHIpewogICAgICAgIG14W2lkXT1hW2xdOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGludCBtaWQgPShsK3IpLzI7CiAgICBidWlsZCgyKmlkLGwsbWlkKTsKICAgIGJ1aWxkKDIqaWQrMSxtaWQrMSxyKTsKICAgIG14W2lkXT1tYXgobXhbMippZF0sbXhbMippZCsxXSk7Cn0Kdm9pZCBwdXMoaW50IGlkLCBpbnQgbCAsaW50IHIpewogICAgaWYgKGx6W2lkXSl7CiAgICAgICAgICAgIG14W2lkXT1seltpZF07CiAgICAgICAgICAgIGlmIChsID09IHIpewogICAgICAgICAgICAgICAgbHpbMippZF09bHpbaWRdOwogICAgICAgICAgICAgICAgbHpbMippZCsxXT1seltpZF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbHpbaWRdPTA7CiAgICAgICAgICAgICAgICB9Cn0Kdm9pZCB1cGQoaW50IGlkLCBpbnQgbCwgaW50IHIsIGludCB1LCBpbnQgdiwgaW50IHcpewogICAgaWYgKCBsID4gdiB8fCByIDwgdSkgcmV0dXJuOwogICAgaWYgKCBsID49IHUmJiByIDw9dikgewogICAgICAgIGx6W2lkXT13OwogICAgICAgIHB1cyhpZCxsLHIpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGludCBtaWQgPShsK3IpLzI7CiAgICB1cGQoMippZCxsLG1pZCx1LHYsdyk7CiAgICB1cGQoMippZCsxLG1pZCsxLHIsdSx2LHcpOwogICAgbXhbaWRdPW1heChteFsyKmlkXSxteFsyKmlkKzFdKTsKfQppbnQgcXVlcnkoaW50IGlkLGludCBsLCBpbnQgciwgaW50IHUsIGludCB2KXsKICAgIGlmICggbCA+IHYgfHwgciA8IHUpIHJldHVybiBJTlRfTUlOOwogICAgaWYgKCBsID49IHUgJiYgciA8PXYpIHJldHVybiBteFtpZF07CiAgICBpbnQgbWlkID0obCtyKS8yOwogICAgaW50IHExPXF1ZXJ5KDIqaWQsbCxtaWQsdSx2KTsKICAgIGludCBxMj1xdWVyeSgyKmlkKzEsbWlkKzEscix1LHYpOwogICAgcmV0dXJuIG1heChxMSxxMik7Cn0KaW50IG1haW4oKXsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpO2Npbi50aWUoTlVMTCk7CiAgICBjaW4gPj4gbjsKICAgIEZPUihpLDEsbikgY2luID4+IGFbaV07CiAgICBidWlsZCgxLDEsbik7CiAgICBjaW4gPj4gdDsKICAgIGJ1aWxkKDEsMSxuKTsKICAgIEZPUihpLDEsdCl7CiAgICAgICAgaW50IHR5cGU7CiAgICAgICAgY2luID4+IHR5cGU7CiAgICAgICAgaWYgKHR5cGUgPT0xKXsKICAgICAgICAgICAgaW50IHUsdix3OwogICAgICAgICAgICBjaW4gPj4gdSA+PiB2ID4+IHc7CiAgICAgICAgICAgIHVwZCgxLDEsbix1LHYsdyk7CiAgICAgICAgfQogICAgICAgIGVsc2V7CiAgICAgICAgICAgIGludCB1LHY7CiAgICAgICAgICAgIGNpbiA+PiB1ID4+IHY7CiAgICAgICAgICAgIGNvdXQgPDwgcXVlcnkoMSwxLG4sdSx2KSA8PCBlbmRsOwogICAgICAgIH0KICAgIH0KfQo=