RT
#include<iostream>
using namespace std;
int n,q,a[500010];
#define ll long long
ll mul(int l,int r){
ll res=1;
for(int i=l;i<=r;i++) res=res*a[i];
return res;
}
void print(ll x){
if(x>(1<<30)) cout<<"Too large\n";
else cout<<x<<'\n';
}
int main(){
cin>>n>>q;
for(int i=1;i<=n;i++) cin>>a[i];
int opt,l,r;
while(q--){
cin>>opt>>l>>r;
if(opt==1){ a[l]=r; }
if(opt==2){
if(r-l>=63){
cout<<"Too large\n";
continue;
}
int lp,rp,cnt=0;
ll ans=0;
for(int i=l;i<=r;i++) if(a[i]<0) cnt++;
for(int i=l;i<=r;i++) if(a[i]<0){lp=i;break;}
for(int i=r;i>=l;i--) if(a[i]<0){rp=i;break;}
if(cnt%2==0){
ans=mul(l,r);
print(ans);
}else{
ans=max(ans,mul(l,lp-1));
ans=max(ans,mul(lp+1,r));
ans=max(ans,mul(l,rp-1));
ans=max(ans,mul(rp+1,r));
print(ans);
}
}
}
return 0;
}