#pragma GCC optimize("Ofast") #pragma GCC target("avx2") #define rd() ({long _v=0,_c;while(_c=*rp++-48,_c>=0)_v=_v*10+_c;_v;}) #define wt(v) ({ulong _z=v;do*--wp=_z%10+48;while(_z/=10);}) #define wt1(v) ({char wbuf[64],*wp=wbuf+sizeof wbuf;wt(v);write(1,wp,wbuf+sizeof wbuf-wp);}) #define repeat(e) for(typeof(e)_=e;_--;) typedef unsigned long ulong; int main(){ void*mmap(); long(*f)(long)=mmap(0l,1l<<21,7,34,-1,0l); char*fwp=f; memcpy(fwp,"\xf3\x0f\x1e\xfa",4); fwp+=4; char*rp=mmap(0l,1l<<25,1,2,0,0l); int q=rd(); long y=rd(); repeat(q){ int c=*rp; if(c>='0'&&c<='9'){ *fwp++=0x48; *fwp++=0xb8; *(long*)fwp=rd(); fwp+=8; *fwp++=0x50; }else if(c=='X'){ rp+=2; *fwp++=0x57; }else{ if(c=='+'){ rp+=2; memcpy(fwp,"\x58\x5a\x48\x01\xd0\x50",6); fwp+=6; }else{ rp+=4; if(rp[-3]=='a'){ memcpy(fwp,"\x58\x5a\x48\x39\xc2\x48\x0f\x4d\xc2\x50",10); }else{ memcpy(fwp,"\x58\x5a\x48\x39\xc2\x48\x0f\x4c\xc2\x50",10); } fwp+=10; } } } *fwp++=0x58; *fwp++=0xc3; { long a=-1; long b=y; while(a+1>1; long v=f(m); if(v