#include //#include #ifdef LOCAL #define sc cerr #else #define sc if(0)cerr //#pragma optimized("O2") #endif #define qlog(x) {sc<<#x<<" = "<<(x)<<"\n";} #define rep(i,l,r) for(int i=(l);i<=(r);i++) #define irep(i,r,l) for(int i=(r);i>=(l);i--) #define qloga(a,l,r) {sc<<#a<<": "; rep(I,(l),(r)){sc< mp; void modify(int l,int r,ull k){ cur1+=k*(a[r]-a[l-1]); cur2+=k*(b[r]-b[l-1]); cur=(((i128)cur1)<<64)|((i128)cur2); if(!mp.count(cur))mp[cur]=g; } ll quest(){ return mp[cur]; } signed main(){ freopen("seq.in","r",stdin); freopen("seq.out","w",stdout); ios::sync_with_stdio(0); cin.tie(0); cin>>n>>Q; build(); modify(1,1,0); while(Q--){ g++; char opt; cin>>opt; if(opt=='!'){ int l,r,k; cin>>l>>r>>k; l++; modify(l,r,k); }else{ cout<