#pragma GCC optimize("Ofast") #pragma GCC target("avx2") #define rd_init() char*rp=({char*mmap();mmap(0l,1l<<25,1,2,0,0ll);}) #define rd_skip() while(*rp++>=48) #define rd() ({long _v=0,_c;while(_c=*rp++-48,_c>=0)_v=_v*10+_c;_v;}) #define wt(v) {unsigned _z=v,_n=0;long _d=0;while(++_n,_d=_d<<8|0x30|_z%10,_z/=10);*(long*)wp=_d;wp+=_n;} #define repeat(e) for(typeof(e)_=e;_--;) typedef unsigned long ulong; char wbuf[1<<25]; int main(){ char*wp=wbuf; rd_init(); rd_skip(); unsigned y=rd(); double invy=1./y+1e-20; int n=rd(); repeat(n){ long u=rd()-1; long v=rd()-1; if(u<0){ unsigned vq=v*invy; wt(v-vq*y+1); }else{ unsigned uq=u*invy; unsigned vq=v*invy; if(uq-vq){ wt(u-uq*y+v-vq*y+2); }else{ wt(v-u); } } *wp++='\n'; } write(1,wbuf,wp-wbuf); _exit(0); }