#include using namespace std; #define int long long #define pi pair #define ull unsigned long long #define add(a,b) (a+=b,a=a>=mod?a-mod:a) const int mod=1e9+7; const int N=3010; int cnt0[N],cnt1[N]; int dp[N][N]; signed main(){ ios::sync_with_stdio(false); cin.tie(0),cout.tie(0); int n;cin>>n;int s0=0,s1=0; for(int i=1;i<=n;i++){ int t,x;cin>>t>>x; if(t)cnt1[x]++,s1++; else cnt0[x]++,s0++; } for(int i=1;i<=n;i++)cnt1[i]+=cnt1[i-1]; for(int i=n;i>=1;i--)cnt0[i]+=cnt0[i+1]; dp[0][0]=1; for(int i=0;is1||!dp[c0][c1])continue; // if(i==2)cout<0&&c0+1<=s0)add(dp[c0+1][c1],dp[c0][c1]*v0%mod); if(v1>0&&c1+1<=s1)add(dp[c0][c1+1],dp[c0][c1]*v1%mod); } } cout<