#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
struct Tree{
int l,r;
int max,wmax,pre,add;
}t[N<<2];
int n,m,a[N],ans,cnt;
void push_up(int p){
t[p].pre=t[p<<1].pre+t[p<<1|1].pre;
t[p].max=max(t[p<<1].max,t[p<<1|1].max);
t[p].wmax=max(t[p<<1].wmax,t[p<<1|1].wmax);
}
void build(int l,int r,int p){
t[p].l=l;t[p].r=r;
if(l==r){
t[p].pre=t[p].max=a[l];
return ;
}
int mid=(l+r)>>1;
build(l,mid,p<<1);
build(mid+1,r,p<<1|1);
push_up(p);
}
void push_down(int p){
if(t[p].add){
t[p<<1].pre+=(t[p<<1].r-t[p<<1].l+1)*t[p].add;
t[p<<1|1].pre+=(t[p<<1|1].r-t[p<<1|1].l+1)*t[p].add;
t[p<<1].max+=t[p].add;t[p<<1|1].max+=t[p].add;
if(t[p<<1].wmax)t[p<<1].wmax+=t[p].add;
if(t[p<<1|1].wmax)t[p<<1|1].wmax+=t[p].add;
t[p<<1].add+=t[p].add;t[p<<1|1].add+=t[p].add;
t[p].add=0;
}
}
void update(int p,int x,int y){
push_down(p);
if(t[p].l==t[p].r){
ans=t[p].pre;
t[p].pre=0;t[p].max=0;
t[p].wmax=0;
return ;
}
if(t[p].wmax){
int mid=(t[p].l+t[p].r)>>1;
if(t[p<<1|1].wmax==t[p].wmax&&y>mid)update(p<<1|1,x,y);
else if(t[p<<1].wmax==t[p].wmax&&x<=mid)update(p<<1,x,y);
}
else{
int mid=(t[p].l+t[p].r)>>1;
if(y>mid&&t[p<<1|1].max==t[p].max)update(p<<1|1,x,y);
else if(x<=mid&&t[p<<1].max==t[p].max)update(p<<1,x,y);
}
push_up(p);
}
void update1(int p,int x,int k){
push_down(p);
if(t[p].l==t[p].r){
t[p].wmax=k-t[p].pre;
t[p].pre=t[p].wmax;t[p].max=0;
return ;
}
int mid=(t[p].l+t[p].r)>>1;
if(x>mid)update1(p<<1|1,x,k);
else update1(p<<1,x,k);
push_up(p);
}
void update2(int p,int x,int y,int k){
push_down(p);
if(x<=t[p].l&&y>=t[p].r){
t[p].pre+=(t[p].r-t[p].l+1)*k;
t[p].max+=k;t[p].add+=k;
if(t[p].wmax)t[p].wmax+=k;
return ;
}
int mid=(t[p].l+t[p].r)>>1;
if(x<=mid)update2(p<<1,x,y,k);
if(y>mid)update2(p<<1|1,x,y,k);
push_up(p);
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
build(1,n,1);
while(m--){
int opt;
cin>>opt;
if(opt==1){
int x,val;
cin>>x>>val;
update1(1,x,val);
}
if(opt==2){
int l,r;
cin>>l>>r;
update(1,l,r);
cout<<ans<<endl;
cnt+=ans;
}
if(opt==3){
int l,r,k;
cin>>l>>r>>k;
update2(1,l,r,k);
}
}
if(cnt<10000)cout<<"QAQ";
else if(cnt<=10000000)cout<<"Sakura";
else cout<<"ice";
return 0;
}