graph g;int n,r,s,a[1d6],b[1d6];{rd(n--,(a--,b--)(n));sortA(n,b,a);r+=b[0..n-1]==r;g.setEdge(n+1,n,a,b);g.getDist(r,b);s=((ll)b[0..n]*-~b[0..]/2+s)%MD;wt(s);}