#pragma GCC optimize("Ofast") #pragma GCC target("avx2") char*mmap(); #define RD(v) int v=0;{int t;while(t=*rp++-48,t>=0)v=v*10+t;} #define RDL(v) long v=0;{int t;while(t=*rp++-48,t>=0)v=v*10+t;} #define MD 1000000007 main(){ char*rp=mmap(0l,4096l<<10,1,2,0,0ll); long a=0; while(*rp++!=10); do{ RDL(c); c=c+1>>1; c%=MD; RDL(d); a+=d%MD*c%MD; }while(*rp); a%=MD; char wbuf[16],*wp=wbuf+16; while(*--wp=a%10+48,a/=10); write(1,wp,wbuf+16-wp); _exit(0); }