#include #define int long long #define pb push_back #define il inline #define re register #define pii pair #define fs first #define sc second using namespace std; il int read() { re int x=0; re int ff=1; re char c=getchar(); while(c<'0'||c>'9'){ if(c=='-')ff=-1; c=getchar(); } while(c>='0'&&c<='9'){ x=x*10+c-'0'; c=getchar(); } return x*ff; } const int N=3006; const int mod=1e9+7; int t,n,m,f[N][N],a[N],b[N],g[N]; il void add(re int& x,re int y) { x+=y,(x>=mod?x-=mod:0); return; } signed main() { t=read(); for(re int i=1;i<=t;i++){ re int opt,x; opt=read(),x=read(); if(opt)a[++n]=x; else b[++m]=x; } sort(a+1,a+1+n); sort(b+1,b+1+m); for(re int i=t,j=m;i;i--){ g[i]=g[i+1]; while(j&&b[j]>=i)g[i]++,j--; }f[0][0]=1;re int qwq=0; for(re int i=1,j=1;i<=t;i++){ while(j<=n&&a[j]<=i)qwq++,j++; for(re int x=0;x