#include<iostream>
#include<stdio.h>
#include<functional>
#include<algorithm>
#include<math.h>
#include<limits.h>
#include<time.h>
#include<set>
#include<vector>
#include<map>
#include<queue>
#include<stack>
#include<deque>
#include<cstring>
#include<string>
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define FORD(i,a,b) for(int i=a;i>=b;i--)
#define pb push_back
#define lli long long int
#define mod1 1000000007
#define mod2 1000000009
#define ppi pair<int,int>
#define tr(a,it) for(typeof(a.begin()) it=a.begin();it!=a.end();it++)
using namespace std;
int segtree[13][20*100001];
int force[20*100001];
int br[13][20*100001];
int ar[3000001];
vector<int>de[3000001];
int build(int fr,int node,int f,int l)
{
force[node]=0;
if(f==l)
{
segtree[fr][node]=br[fr][f];
return segtree[fr][node];
}
int b1=build(fr,2*node,f,(f+l)/2);
int b2=build(fr,2*node+1,((f+l)/2)+1,l);
segtree[fr][node]=max(b1,b2);
return segtree[fr][node];
}
int update(int node,int f,int l,int x,int y,int fr)
{
if(l<x||y<f||f>l)
{
return 0;
}
int br[2][13];
if(x<=f&&l<=y)
{
force[node]+=fr;
FOR(i,0,12)br[0][i]=segtree[i][node];
FOR(i,0,12)segtree[i][node]=br[0][(i+fr)%12];
return 0;
}
force[2*node]=+force[node];
force[2*node+1]=+force[node];
FOR(i,0,12)
{
br[0][i]=segtree[i][2*node];
br[1][i]=segtree[i][2*node+1];
}
FOR(i,0,12)
{
segtree[i][2*node]=br[0][(i+force[node])%12];
segtree[i][2*node+1]=br[1][(i+force[node])%12];
}
force[node]=0;
update(2*node,f,(f+l)/2,x,y,fr);
update(2*node+1,((f+l)/2)+1,l,x,y,fr);
FOR(i,0,12)segtree[i][node]=max(segtree[i][2*node],segtree[i][2*node+1]);
return 0;
}
int query(int node,int f,int l,int x,int y,int fi)
{
if(l<x||y<f||f>l)return 0;
else
if(x <= f &&l <= y)
{
return segtree[(fi)%12][node];
}
fi+=force[node];
int q1=query(2*node,f,(f+l)/2,x,y,fi);
int q2=query(2*node+1,((f+l)/2)+1,l,x,y,fi);
return max(q1,q2);
}
int main()
{
//clock_t start=clock();
int n;
scanf("%d",&n);
FOR(i,1,n)scanf("%d",&ar[i]);
FOR(i,1,n)
{
int x=ar[i];
while(x>0)
{
de[i].pb(x%10);
x=(x-x%10)/10;
}
FOR(z,0,12)
{
int y=0;
int sz=de[i].size();
FORD(j,sz-1,0)
{
y*=10;
y+=de[i][(j-z+12*sz)%sz];
}
br[z][i]=y;
}
}
FOR(i,0,12)
{
build(i,1,1,n);
}
int m;
scanf("%d",&m);
while(m--)
{
int qu;
scanf("%d",&qu);
int l,r,f;
scanf("%d%d",&l,&r);
if(qu==0)
{
scanf("%d",&f);
update(1,1,n,l+1,r+1,f%12);
}
else
{
printf("%d\n",query(1,1,n,l+1,r+1,0));
}
}
//while(clock()-start<0.95*CLOCKS_PER_SEC);
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0ZGlvLmg+CiNpbmNsdWRlPGZ1bmN0aW9uYWw+CiNpbmNsdWRlPGFsZ29yaXRobT4KI2luY2x1ZGU8bWF0aC5oPgojaW5jbHVkZTxsaW1pdHMuaD4KI2luY2x1ZGU8dGltZS5oPgojaW5jbHVkZTxzZXQ+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8bWFwPgojaW5jbHVkZTxxdWV1ZT4KI2luY2x1ZGU8c3RhY2s+CiNpbmNsdWRlPGRlcXVlPgogCiNpbmNsdWRlPGNzdHJpbmc+CiNpbmNsdWRlPHN0cmluZz4KIAogCiNkZWZpbmUgRk9SKGksYSxiKSBmb3IoaW50IGk9YTtpPD1iO2krKykKI2RlZmluZSBGT1JEKGksYSxiKSBmb3IoaW50IGk9YTtpPj1iO2ktLSkKI2RlZmluZSBwYiBwdXNoX2JhY2sgCiNkZWZpbmUgbGxpIGxvbmcgbG9uZyBpbnQKI2RlZmluZSBtb2QxIDEwMDAwMDAwMDcKI2RlZmluZSBtb2QyIDEwMDAwMDAwMDkKI2RlZmluZSBwcGkgcGFpcjxpbnQsaW50PgojZGVmaW5lIHRyKGEsaXQpIGZvcih0eXBlb2YoYS5iZWdpbigpKSBpdD1hLmJlZ2luKCk7aXQhPWEuZW5kKCk7aXQrKykKIAp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmludCBzZWd0cmVlWzEzXVsyMCoxMDAwMDFdOwppbnQgZm9yY2VbMjAqMTAwMDAxXTsKaW50IGJyWzEzXVsyMCoxMDAwMDFdOwppbnQgYXJbMzAwMDAwMV07CnZlY3RvcjxpbnQ+ZGVbMzAwMDAwMV07CgoKaW50IGJ1aWxkKGludCBmcixpbnQgbm9kZSxpbnQgZixpbnQgbCkKewogICAgZm9yY2Vbbm9kZV09MDsKIAogICAgaWYoZj09bCkKICAgIHsKICAgICAgICAgICAgc2VndHJlZVtmcl1bbm9kZV09YnJbZnJdW2ZdOwogCiAgICAgICAgICAgIHJldHVybiBzZWd0cmVlW2ZyXVtub2RlXTsKICAgIH0KIAogICAgaW50IGIxPWJ1aWxkKGZyLDIqbm9kZSxmLChmK2wpLzIpOwogICAgaW50IGIyPWJ1aWxkKGZyLDIqbm9kZSsxLCgoZitsKS8yKSsxLGwpOwogCiAgICBzZWd0cmVlW2ZyXVtub2RlXT1tYXgoYjEsYjIpOwogCiAgICByZXR1cm4gc2VndHJlZVtmcl1bbm9kZV07Cn0KIAppbnQgdXBkYXRlKGludCBub2RlLGludCBmLGludCBsLGludCB4LGludCB5LGludCBmcikKewogICAgaWYobDx4fHx5PGZ8fGY+bCkKICAgIHsKICAgIHJldHVybiAwOwogICAgfQogCiAgICBpbnQgYnJbMl1bMTNdOwogICAgaWYoeDw9ZiYmbDw9eSkKICAgIHsKICAgICAgICAgICAgICAgICAgZm9yY2Vbbm9kZV0rPWZyOwogCiAgICAgICAgICAgICAgICAgIEZPUihpLDAsMTIpYnJbMF1baV09c2VndHJlZVtpXVtub2RlXTsKIAogICAgICAgICAgICAgICAgICBGT1IoaSwwLDEyKXNlZ3RyZWVbaV1bbm9kZV09YnJbMF1bKGkrZnIpJTEyXTsKIAogICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgIH0KIAogICAgZm9yY2VbMipub2RlXT0rZm9yY2Vbbm9kZV07CiAgICBmb3JjZVsyKm5vZGUrMV09K2ZvcmNlW25vZGVdOwogCiAgICBGT1IoaSwwLDEyKQogICAgewogICAgICAgICAgICAgIGJyWzBdW2ldPXNlZ3RyZWVbaV1bMipub2RlXTsKICAgICAgICAgICAgICBiclsxXVtpXT1zZWd0cmVlW2ldWzIqbm9kZSsxXTsKICAgIH0KIAogICAgRk9SKGksMCwxMikKICAgIHsKICAgICAgICAgICAgICBzZWd0cmVlW2ldWzIqbm9kZV09YnJbMF1bKGkrZm9yY2Vbbm9kZV0pJTEyXTsKICAgICAgICAgICAgICBzZWd0cmVlW2ldWzIqbm9kZSsxXT1iclsxXVsoaStmb3JjZVtub2RlXSklMTJdOwogICAgfQogCiAgICBmb3JjZVtub2RlXT0wOwogCiAgICB1cGRhdGUoMipub2RlLGYsKGYrbCkvMix4LHksZnIpOwogICAgdXBkYXRlKDIqbm9kZSsxLCgoZitsKS8yKSsxLGwseCx5LGZyKTsKIAogICAgRk9SKGksMCwxMilzZWd0cmVlW2ldW25vZGVdPW1heChzZWd0cmVlW2ldWzIqbm9kZV0sc2VndHJlZVtpXVsyKm5vZGUrMV0pOwogCiAgICByZXR1cm4gMDsKfQogCmludCBxdWVyeShpbnQgbm9kZSxpbnQgZixpbnQgbCxpbnQgeCxpbnQgeSxpbnQgZmkpCnsKICAgICAgaWYobDx4fHx5PGZ8fGY+bClyZXR1cm4gMDsKICAgICAgZWxzZQogICAgICBpZih4IDw9IGYgJiZsIDw9IHkpCiAgICAgIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlZ3RyZWVbKGZpKSUxMl1bbm9kZV07CiAgICAgIH0KIAogICAgICBmaSs9Zm9yY2Vbbm9kZV07CiAKICAgICAgaW50IHExPXF1ZXJ5KDIqbm9kZSxmLChmK2wpLzIseCx5LGZpKTsKICAgICAgaW50IHEyPXF1ZXJ5KDIqbm9kZSsxLCgoZitsKS8yKSsxLGwseCx5LGZpKTsKIAogICAgICByZXR1cm4gbWF4KHExLHEyKTsKfQogCmludCBtYWluKCkKewogICAgLy9jbG9ja190IHN0YXJ0PWNsb2NrKCk7CiAgICBpbnQgbjsKICAgIHNjYW5mKCIlZCIsJm4pOwogCiAgICBGT1IoaSwxLG4pc2NhbmYoIiVkIiwmYXJbaV0pOwogCiAgICBGT1IoaSwxLG4pCiAgICB7CiAgICAgICAgICAgICAgaW50IHg9YXJbaV07CiAgICAgICAgICAgICAgd2hpbGUoeD4wKQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICBkZVtpXS5wYih4JTEwKTsKICAgICAgICAgICAgICAgICAgICAgICB4PSh4LXglMTApLzEwOwogICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgIEZPUih6LDAsMTIpCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICBpbnQgeT0wOwogCiAgICAgICAgICAgICAgaW50IHN6PWRlW2ldLnNpemUoKTsKIAogICAgICAgICAgICAgIEZPUkQoaixzei0xLDApCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgIHkqPTEwOwogICAgICAgICAgICAgICAgICAgICAgIHkrPWRlW2ldWyhqLXorMTIqc3opJXN6XTsKIAogICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgICAgICBiclt6XVtpXT15OwogCiAgICAgICAgICAgICAgfQogICAgfQogCiAgICBGT1IoaSwwLDEyKQogICAgewogICAgICAgICAgICAgIGJ1aWxkKGksMSwxLG4pOwogICAgfQogCiAKICAgIGludCBtOwogICAgc2NhbmYoIiVkIiwmbSk7CiAKICAgIHdoaWxlKG0tLSkKICAgIHsKICAgICAgICAgICAgICBpbnQgcXU7CiAgICAgICAgICAgICAgc2NhbmYoIiVkIiwmcXUpOwogCiAgICAgICAgICAgICAgaW50IGwscixmOwogCiAgICAgICAgICAgICAgc2NhbmYoIiVkJWQiLCZsLCZyKTsKIAogICAgICAgICAgICAgIGlmKHF1PT0wKQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBzY2FuZigiJWQiLCZmKTsKICAgICAgICAgICAgICAgICB1cGRhdGUoMSwxLG4sbCsxLHIrMSxmJTEyKTsKIAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBwcmludGYoIiVkXG4iLHF1ZXJ5KDEsMSxuLGwrMSxyKzEsMCkpOwogICAgICAgICAgICAgIH0KICAgIH0KIAogICAgIC8vd2hpbGUoY2xvY2soKS1zdGFydDwwLjk1KkNMT0NLU19QRVJfU0VDKTsKICAgIHJldHVybiAwOwp9IAo=