#include using namespace std; char s[32]; long long hoge[1000000]; map amap; main(){ { long long m=1; for(int i=0;i<1000000;++i){ hoge[i]=m; m*=1000000007; } } int n,q; scanf("%d%d ",&n,&q); long long h=0; amap.insert(make_pair(h,0)); for(int i=1;i<=q;++i){ gets(s); if(*s=='!'){ int l,r,k; sscanf(s+1,"%d%d%d",&l,&r,&k); h+=(hoge[l]-hoge[r])*k; amap.insert(make_pair(h,i)); }else{ printf("%d\n",amap[h]); } } }