#include<bits/stdc++.h>
#define rep(i,s,t) for(register int i=s;i<=t;++i)
#define _rep(i,s,t) for(register int i=s;i>=t;--i)
using namespace std;
const int mod=990804011;
inline void inc(int &x,int y)
{
x+=y;
if(x>=mod)
x-=mod;
if(x<0)
x+=mod;
}
typedef long long ll;
int n,m,T,ans;
ll l[10],r[10],x[10];
int f[52][1<<10];
inline int solve(int S)
{
rep(i,0,n-1)
x[i]=(S>>i&1)?(l[i]-1):r[i];
rep(i,0,n-1)
if(x[i]<0)
return 0;
memset(f,0,sizeof f);
f[51][0]=1;
_rep(i,50,0)
{
rep(s,0,(1<<n)-1)
{
if(!f[i+1][s])
continue;
int t=0;
rep(j,0,n-1)
if(x[j]>>i&1)
t|=(1<<j);
inc(f[i][s|t],1ll*(__builtin_popcount(s)+1)*f[i+1][s]%mod);
rep(j,0,n-1)
if((t&(~s))>>j&1)
inc(f[i][s|(t^(1<<j))],f[i+1][s]);
}
}
int ans=0;
rep(s,0,(1<<n)-1)
inc(ans,f[0][s]);
return ans;
}
int main()
{
scanf("%d",&T);
for(;T--;)
{
ans=0;
scanf("%d",&n);
rep(i,0,n-1)
scanf("%lld%lld",l+i,r+i),--l[i],--r[i];
rep(i,0,(1<<n)-1)
__builtin_popcount(i)&1?inc(ans,mod-solve(i)):inc(ans,solve(i));
printf("%d\n",ans);
}
return 0;
}
来源:zr