#include #include #include #include #include using namespace std; const int maxn=10010,mod=1e9+7; int n,f[2][maxn],a[maxn],b[maxn],ans[maxn]; void add(int i,int x) { while(i<=n) { (b[i]+=x)%=mod; i=(i|(i-1))+1; } } int sum(int i) { int ans=0; while(i) { (ans+=b[i])%=mod; i=(i&(i-1)); } return ans; } int main() { std::ios::sync_with_stdio(false); //freopen("","r",stdin); //freopen("","w",stdout); int T,cas=0; cin>>T; while(T--) { cin>>n; cas++; int now=0,to=1; for(int i=1;i<=n;i++) { cin>>a[i]; f[now][i]=1; } ans[1]=n; for(int i=2;i<=n;i++) { ans[i]=0; if(!ans[i-1]) continue; for(int j=1;j<=n;j++) { f[to][j]=sum(a[j]-1); (ans[i]+=f[to][j])%=mod; add(a[j],f[now][j]); } swap(now,to); for(int j=1;j<=n;j++) b[j]=0; } cout<<"Case #"<